第三章 栈和队列

第三章 栈和队列

一:栈和队列的基本概念

  1. 栈的定义:只能在一端进行插入删除的线性表
    (1)栈顶(动态变化):进行插入(入栈)和删除(出栈)
    (2)栈底:固定不变
  2. 栈的特点:先进后出
  3. 栈的存储结构:顺序栈、链栈
  4. 进栈判断是否栈满;出栈判断是否栈空
  5. 队列的定义:仅允许在表的一端进行插入,在表的另一端进行删除
    (1)队头:删除(出队)->出队后,其后继元素成为新的队头元素
    (2)队尾:插入(入队)->入队后成为新的队尾元素
  6. 队列特点:先进先出
  7. 队列的存储结构:顺序对、链队
  8. 进队判断是否队满,出队判断是否队空
    二:栈和队列的存储结构、算法与应用
  9. 顺序栈:三个状态、两个操作
    三个状态:
    (1)栈空:st.top=-1
    (2)栈满:st.top=maxsize-1(下标从0开始)
    (3)非法状态:上溢(栈满后继续入栈)、下溢(栈空后继续出栈)
    两个操作:
    (1)进栈:++(st.top);st.data[st.top]=x
    (2)出栈:x=st.data[st.top];–(st.top)
  10. 链栈:两个状态、两个操作
    两个状态:
    (1)栈空:lst->next==NULL
    (2)栈满:不存在
    两个操作:进栈、出栈
    栈的应用:递归调用、子程序调用、表达式求值
  11. 顺序队列(循环队列):rear(队尾)、front(队头)
    两个状态:
    (1)队空:qu.rear==qu.front
    (2)队满:(qu.rear+1)%maxsize=qu.front
    两个状态:进队、出队
    初始化队列算法:qu.rear=qu.front=0
  12. 链队列:两个状态、两个操作
    两个状态:
    (1)队空:qu.rear=NULL或者qu.front=NULL
    (2)队满:不存在
    两个操作:进队、出队(头尾指针可能都需要修改)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值