堆栈

堆(heap)

基本释义:累积在一起的东西;
物理特性:一颗完全二叉树
在计算机中的定义:一类特殊的数据结构的统称;
n个元素的序列{k1,k2,ki,…,kn}当且仅当满足以下关系时,称之为堆。
(ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4…n/2)
若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右孩子结点的值。由此,若序列{k1,k2,…,kn}是堆,则堆顶元素(或完全二叉树的根)必为序列中n个元素的最小值(或最大值)。
实例化如下:
n = 7,i = 2

K1
K2
K3
K4
K5
K6
K7

当i = 2 时,满足
k2 <= k4 , k2 <= k5 或者 k2 >= k4 , k2 >= k5 (n= 1,2,3)
即为堆。

堆支持的操作

  1. build:建立一个空堆;
  2. insert:像堆中插入一个新元素;
  3. update:将新元素提升使其符合堆得性质;
  4. get:获取当前堆顶元素的值;
  5. delete:删除堆顶元素;
  6. heapify:使删除堆顶元素的堆再次成为堆。

栈(stack)

基本释义:储存货物或供旅客住宿的房屋
在计算机中的定义:栈又名堆栈(后进先出表Last In First Out,LIFO表),是一种仅允许在表头进行插入和删除操作的线性表
栈顶:允许进行插入和删除的一端,即表头。
栈底:与栈顶相对的另一端,即表尾。
进栈(入栈、压栈):向一个栈插入新元素。它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素。
出栈(退栈):从一个栈删除元素。它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
空栈:不含任何元素的栈。
栈的作用:栈可以用来在函数调用的时候存储断点,做递归时要用到栈。
堆栈帧:保存了一个函数调用时所需的维护信息。堆栈帧一般包含以下信息:

  1. 函数的返回地址和参数
  2. 临时变量:包括函数的非静态局部变量以及自动生成的其他临时变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值