在没有数组的优先级队列上实现插入和删除功能?

时间:2015-11-09 22:41:32

标签: c data-structures queue heap priority-queue

我需要在不使用数组的情况下实现优先级队列。 我试图使用二进制堆(Min堆)来实现它,但是在插入新元素时遇到了麻烦。使用数组我只需要将新元素附加到数组的末尾并使其变为headpfy,但是如果没有数组,我必须注意插入它的位置,因为二叉树可能会非常不平衡。

我想知道这个二进制堆的解决方案,没有数组或其他数据结构用作最小堆。

我需要实现插入和删除的功能(可以是最小元素或堆中间的其他元素)。

同样的问题,但没有回答:MinMax Heap implementation without an array

由于

1 个答案:

答案 0 :(得分:0)

用于此任务的常见数据结构是Fibonacci堆或二项式堆:

https://en.wikipedia.org/wiki/Fibonacci_heap

https://en.wikipedia.org/wiki/Binomial_heap