C二进制堆没有数组实现

时间:2016-02-02 02:36:10

标签: c tree heap nodes heapsort

所以我正在开发一个实现堆和堆的项目,但它应该用节点(带有父指针,左指针,右指针)来实现,而不是通常的数组实现。

看起来非常简单,但我无法弄清楚的一件事是如何找出在树上添加新项目的位置。

在数组实现中,您只需将项添加到数组中的下一个空位(array.length index)。但是,对于仅使用节点的实现,并不是那么简单。

我确信我可以编写一些循环遍历整个树的算法,直到找到下一个空白点,但这似乎需要花费大量不必要的时间。

有没有人有任何想法?

0 个答案:

没有答案