堆栈(栈)和堆 - zLulus/My_Note GitHub Wiki
堆栈(栈)
一种特殊的串列形式的数据结构
只允许在顶端(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#中,堆用于存储引用类型