问题标签 [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.
algorithm - 合并两个最大堆的算法?
是否有一种有效的算法来合并存储为数组的 2 个最大堆?
c++ - 为什么两个不同的概念都称为“堆”?
为什么 C 风格语言中用于动态内存分配的运行时堆和数据结构都称为“堆”?有什么关系吗?
python - 在 python 中查看堆
由 heapq 库创建的在 python 堆中窥视的官方方法是什么?现在我有
可以说,这不是很好。我可以总是假设这heap[0]
是堆的顶部并使用它吗?还是会假设太多的底层实现?
c++ - 查找链接结构堆中的最后一个元素
我想知道您将如何在堆和根元素的链接结构实现中找到最远的元素。我希望能够 Enque 和 Deque 元素。
一些澄清:我的意思是说你有一个链接结构组成一个最大堆(根元素具有最大值)。您的树将在最底部的某处有一个元素,您可以在之后插入或删除,具体取决于您是入队还是出队。你如何确定那个元素?以及如何确定树的根节点?(上一个)
arrays - 堆与二叉树 - 如何实现?
在实现堆结构时,我们可以将数据存储在一个数组中,使得位置 i 的节点的子节点位于位置 2i 和 2i+1。
我的问题是,为什么我们不使用数组来表示二叉搜索树,而是处理指针等?
谢谢
math - 树高的定义是什么?
我似乎无法为此找到明确的答案,我正在尝试对堆做一些基本的证明,但这就是让我有点失望的原因:
一棵空树有效吗?如果有,它的高度是多少?
我认为这将是0。
具有单个节点的树的高度是多少?
我认为这将是 1,但我已经看到它是 0 的定义(如果是这种情况,那么我不知道如何解释一棵空树)。
c# - .NET 中的堆类
可能重复:
c# 中的斐波那契、二进制或二项式堆?
.NET中有没有像堆这样的类?我需要某种可以从中检索 min 的集合。元素。我只想要3种方法:
Add()
RemoveMinElement()
GetMinElement()
我不能使用排序列表,因为键必须是唯一的,而且我可能有几个相同的元素。
c++ - 有 C++ MinMax Heap 实现吗?
我正在寻找类似 stl ( push_heap
, pop_heap
, make_heap
) 中的算法,除了能够有效地弹出最小值和最大值。AKA 双端优先级队列。如此处所述。
双端优先级队列的任何干净实现也将作为替代方案感兴趣,但是这个问题主要是关于 MinMax Heap 实现。
我的 google-fu 没有结果,但它肯定存在吗?
java - 如何在java中使用迭代器?
我已经实现了优先队列接口来制作堆。你能告诉我如何在上面实现一个迭代器吗?给我指点一些适当的教程,我是java新手,在这里的截止日期很短。实际上,我需要一种基于 Object.id 从堆中查找和修改对象的方法。我不在乎它是否是 O(n)。
// 二进制堆类
algorithm - 具有动态项目优先级的优先级队列
我需要实现一个优先级队列,其中队列中项目的优先级可以更改,并且队列会自行调整,以便始终以正确的顺序删除项目。我对如何实现它有一些想法,但我确信这是一个相当常见的数据结构,所以我希望我可以使用比我更聪明的人的实现作为基础。
谁能告诉我这种优先级队列的名称,以便我知道要搜索什么,或者更好的是,为我指出一个实现?