学习笔记(2)——栈和队列

栈和队列都是线性结构,是特殊的线性表。

栈:

仅在表尾进行插入或删除元素的操作。表尾称为栈顶,表头称为栈底。不含元素的空表为空栈。又称为”先进后出“线性表。

栈有两种存储结构:顺序存储和链式存储(与线性表类似)

设置top指针指向栈顶位置,base指针指向栈底位置,当top = base 时,栈为空栈。使用C语言时,不应限定栈的最大容量:先分配一个基本容量,当空间不够使用时,使用realloc命令进行空间扩充。

使用时,结合实际问题,利用”先进后出“的性质。


队列

仅在表的一段插入数据元素(队尾),在标的另一端删除数据元素(队头)。“先进先出”的线性表。

还有“双端队列”的特殊形式:限定插入和删除操作在表的两端进行的线性表。实际应用中有:输入受限的双端队列(一个端点允许插入和删除、另一个端点只允许删除);输出受限的双端列表(一个端点允许插入和删除、另一个端点只允许插入)。

链队列:用链表表示的队列。需要两个分别指向队头和队尾的指针。可以增设一个头结点,头结点指向队头。

循环队列:用顺序存储结构实现的队列。将连续的存储空间想象成首尾相连的圆环,同样有两个分别指向队头和队尾的指针。当头指针与尾指针指向同一个存储位置时,队列为空队列。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值