问题标签 [heap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
36352 浏览

algorithm - 合并两个最大堆的算法?

是否有一种有效的算法来合并存储为数组的 2 个最大堆?

0 投票
9 回答
32476 浏览

c++ - 为什么两个不同的概念都称为“堆”?

为什么 C 风格语言中用于动态内存分配的运行时堆和数据结构都称为“堆”?有什么关系吗?

0 投票
2 回答
32230 浏览

python - 在 python 中查看堆

由 heapq 库创建的在 python 堆中窥视的官方方法是什么?现在我有

可以说,这不是很好。我可以总是假设这heap[0]是堆的顶部并使用它吗?还是会假设太多的底层实现?

0 投票
3 回答
1508 浏览

c++ - 查找链接结构堆中的最后一个元素

我想知道您将如何在堆和根元素的链接结构实现中找到最远的元素。我希望能够 Enque 和 Deque 元素。

一些澄清:我的意思是说你有一个链接结构组成一个最大堆(根元素具有最大值)。您的树将在最底部的某处有一个元素,您可以在之后插入或删除,具体取决于您是入队还是出队。你如何确定那个元素?以及如何确定树的根节点?(上一个)

0 投票
7 回答
7975 浏览

arrays - 堆与二叉树 - 如何实现?

在实现堆结构时,我们可以将数据存储在一个数组中,使得位置 i 的节点的子节点位于位置 2i 和 2i+1。

我的问题是,为什么我们不使用数组来表示二叉搜索树,而是处理指针等?

谢谢

0 投票
7 回答
21582 浏览

math - 树高的定义是什么?

我似乎无法为此找到明确的答案,我正在尝试对堆做一些基本的证明,但这就是让我有点失望的原因:

一棵空树有效吗?如果有,它的高度是多少?
我认为这将是0。

具有单个节点的树的高度是多少?
我认为这将是 1,但我已经看到它是 0 的定义(如果是这种情况,那么我不知道如何解释一棵空树)。

0 投票
2 回答
94034 浏览

c# - .NET 中的堆类

可能重复:
c# 中的斐波那契、二进制或二项式堆?

.NET中有没有像堆这样的类?我需要某种可以从中检索 min 的集合。元素。我只想要3种方法:

  • Add()
  • RemoveMinElement()
  • GetMinElement()

我不能使用排序列表,因为键必须是唯一的,而且我可能有几个相同的元素。

0 投票
5 回答
10678 浏览

c++ - 有 C++ MinMax Heap 实现吗?

我正在寻找类似 stl ( push_heap, pop_heap, make_heap) 中的算法,除了能够有效地弹出最小值和最大值。AKA 双端优先级队列。如此处所述。

双端优先级队列的任何干净实现也将作为替代方案感兴趣,但是这个问题主要是关于 MinMax Heap 实现。

我的 google-fu 没有结果,但它肯定存在吗?

0 投票
2 回答
1532 浏览

java - 如何在java中使用迭代器?

我已经实现了优先队列接口来制作堆。你能告诉我如何在上面实现一个迭代器吗?给我指点一些适当的教程,我是java新手,在这里的截止日期很短。实际上,我需要一种基于 Object.id 从堆中查找和修改对象的方法。我不在乎它是否是 O(n)。

// 二进制堆类

0 投票
5 回答
16924 浏览

algorithm - 具有动态项目优先级的优先级队列

我需要实现一个优先级队列,其中队列中项目的优先级可以更改,并且队列会自行调整,以便始终以正确的顺序删除项目。我对如何实现它有一些想法,但我确信这是一个相当常见的数据结构,所以我希望我可以使用比我更聪明的人的实现作为基础。

谁能告诉我这种优先级队列的名称,以便我知道要搜索什么,或者更好的是,为我指出一个实现?