使用链表实现二叉堆
可能的重复:
二进制最小堆的链表实现(遇到问题通过操纵...)
您好,
我无法找出一种算法,该算法可以为我提供二叉堆的链表实现中树节点的位置。我已经使用数组实现了堆,现在我想尝试使用链表;如果我使用数组来表示堆,有没有办法找到其数组索引为 i 的树节点?
Possible Duplicate:
Linked list implementation of Binary Min Heap (Having trouble with manipulation…)
Greetings,
I'm having trouble figuring out an algorithm that will give me the location of a tree node in a linked list implementation of a binary heap. I've implemented a heap using arrays now I want to try using a linked list; Is there a way to find the tree node whose array index would have been i had I used an array to represent the heap?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有什么意义?链表实现会比基于数组的实现更慢或更复杂。如果你用一个简单的链表替换数组并且不添加其他结构,你的插入时间将是 O(n) 而不是 O(log n),然后你也可以在相同的 O(n) 中维护一个排序列表)复杂性。
What's the point? A linked list implementation will be either slower or more complex than an array-based one. If you replace the array with a simple linked list and don't add other structure your insertion time will be O(n) instead of O(log n), and then you could as well just maintain a sorted list in same O(n) complexity.
看看 Michael Springmann 实现
take a look at Michael Springmann implementation