Skip to content

堆栈(栈)和堆

L edited this page Mar 15, 2020 · 3 revisions

堆栈(栈)

一种特殊的串列形式的数据结构
只允许在顶端(top)进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作

使用两种基本操作:推入(push)和弹出(pop):
推入:将数据放入堆叠的顶端(阵列形式或串列形式),堆叠顶端top指标加一。
弹出:将顶端数据资料输出(回传),堆叠顶端资料减一。

栈的基本特点:
先入后出,后入先出。
除头尾节点之外,每个元素有一个前驱,一个后继。

在C#中,栈用于存储值类型、引用类型的指针

一种特别的树状数据结构
若是满足以下特性,即可称为堆:“给定堆中任意节点P和C,若P是C的父节点,那么P的值会小于等于(或大于等于)C的值”。
若父节点的值恒小于等于子节点的值,此堆称为最小堆(min heap);反之,若父节点的值恒大于等于子节点的值,此堆称为最大堆(max heap)
在堆中最顶端的那一个节点,称作根节点(root node),根节点本身没有父节点(parent node)。

在C#中,堆用于存储引用类型

参考资料

堆-维基百科,自由的百科全书 值类型和引用类型

Clone this wiki locally