堆是一种由包含值的“节点”组成的数据结构。典型的堆在顶部有一个节点,其正下方可能有两个或更多子节点。每个节点都可以有两个或更多子节点,这意味着堆会随着子节点的增加而变宽。从视觉上看,堆像一棵倒置的树,整体形状就是一个堆。

虽然堆中的每个节点都可以有两个或更多子节点(也称为“子代”),但大多数堆会将每个节点限制为两个子节点。这类堆也称为二叉堆,可用于存储已排序的数据。例如,“二叉最大堆”会将最大值存储在根节点中。第二大值和第三大值存储在根节点的子节点中。在整棵树中,每个节点的值都大于其任一子节点的值。“二叉最小堆”则相反,根节点存储最小值,并且每个节点的值都小于其子节点的值。

在计算机科学中,堆通常以简单的图表表示。不过,实际将数据存储在堆中要复杂得多。要创建堆,程序员必须为插入和删除数据分别编写算法。插入堆中的值通常存储在数组中,程序可以引用这个数组。由于堆中的数据已经排序,因此堆为搜索特定值提供了一种高效方式。

NOTE:“堆”也是一个编程术语,可用于描述动态分配的内存。活动的应用程序可以访问这块内存。由于堆中的内存是动态分配的,因此它可能会根据正在使用的内存量增大或缩小。

更新日期 August 2, 2012 作者 Per C.

quiz测试你的知识

What is the purpose of a hostname?

A
It links the hardware ID of the motherboard to the operating system.
0%
B
It provides way to customize the name of a wireless router.
0%
C
It allows a printer to connect to a computer via USB.
0%
D
It identifies a hardware device on a network.
0%
Correct! Incorrect!     View the Hostname definition.
More Quizzes →

Tech Terms 计算机词典

本页中堆的定义是由 TechTerms.com 的作者撰写的原创定义。如果您想引用本页或引用此定义,请使用定义正下方的绿色引用栏。

我们的目标是以简单易懂的方式解释计算机术语。我们努力使发布的每个定义都做到准确和简明。如果您对本定义有任何反馈,或想建议一个新的技术术语,请联系我们

Tech Terms 通讯

通过我们的每日或每周通讯提升您的技术知识!立即订阅,即可将新术语和测验发送到您的收件箱。

订阅免费的 TechTerms 通讯

您希望多久收到一封电子邮件?

您可以随时使用每封邮件中的链接取消订阅或更改接收频率。 有疑问?请联系我们

注意:通讯以英文发送。