《数据结构与算法基础 严蔚敏版》第三章 堆栈与队列

链接:https://pan.baidu.com/s/1z-kFKiNaezO0k2BWQ8l1Hw 
提取码:asdf

1.堆栈

(1)堆栈的概念

栈:只允许在一段进行插入或删除操作的线性表

栈顶:允许插入和删除的一端

栈底:不允许插入和删除的一端

特点:后进先出(LIFO)Last in First Out

(2)堆栈的顺序和链式实现

顺序栈:

简单、方便、但易产生溢出(数组大小固定)

上溢:栈已经满,又要压入元素

下溢:栈已经空,还要弹出元素(一般认为是一种结束条件,即问题处理结束)

顺序栈的表示:

初始化操作:

判断是否为空:

求顺序栈的长度:

清空顺序栈:if(S.base)判断栈是否存在

销毁顺序栈:空间释放,free(S.base)

进栈操作:

出栈:top指针下移,元素出栈

链栈:运算受限的单链表,只能在链表头部进行操作

      • 链表的头指针就是栈顶
      • 不需要头结点
      • 基本不存在栈满的情况
      • 空栈相当于头指针指向空
      • 插入和删除进在栈顶处执行

初始化:

判断是否为空:

入栈:

出栈:free(p)

取栈顶元素:

基本要求:掌握堆栈的概念和特点,能够实现顺序堆栈和链式堆栈的基本操作

2.队列

(1)队列的基本概念:先进先出

(2)顺序循环队列

初始化队列

求循环队列长度:

入队:

出队

取队头元素

(3)链式队列

初始化:

销毁链队列

链队列——将元素e入队

链队列——将元素e出队

取出队头元素

(4)优先级队列

基本要求:掌握队列的概念和特点,掌握顺序循环队列的概念和特点,能够实现队列的基本操作,掌握优先级队列的概念

3.堆栈和队列的应用

基本要求:理解堆栈和队列的经典应用:括号匹配问题,算术表达式计算问题,迷宫问题,调度问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值