第3章 栈和队列

栈和队列也是线性结构。
线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作收到限制。
栈的操作只能在表的一端进行,队列的插入操作在表的一端进行而其它操作在表的另一端进行,所以,把栈和队列称为操作受限的线性表。

3.1栈(洗盘子,拿盘子)
3.1.1栈的定义及基本运算
栈(Stack)是操作限定在表的尾端进行的线性表。表尾进行插入、删除等操作,把表尾称为栈顶(Top),另一端是固定的,叫栈底(Bottom)。
栈记为:S=(a1,a2,···,an)。a1为栈底元素,an为栈顶元素。这n个元素按照a1,a2,···,an的顺序依次入栈,而出栈的次序相反,栈的操作是按照后进先出(Last In First Out, 简称LIFO)或先进后出(First In Last Out,简称FILO)的原则进行,因此,栈又称为LIFO表或FILO表。
S=(D,R),D是数据元素的有限集合;R是数据元素之间关系的有限集合。
栈只能在栈顶进行操作,栈的操作是线性表操作的一个子集。
3.1.2栈的存储和运算实现
1、顺序栈
用一片连续的存储空间来存储栈中的数据元素,这样的栈称为顺序栈(Sequence Stack)。
2、链栈
链栈(Linked Stack):链栈通常用单链表来表示,它的实现是单链表的简化。
3.2队列(排队取钱,先来先取,先取完先走)
3.2.1队列的定义及基本运算
队列(Queue)是插入操作限定在表的尾部而其它操作限定在表的头部进行的线性表。把进行插入操作的表尾称为队尾(Rear),把进行其它操作的头部称为对头(Front)。
记为:Q=(a1,a2,···,an),入队、出队都是按照a1,a2,···,an。队列的操作是按照先进先出(First In First Out)或后进后出(Last In Last Out)的原则进行的,因此,队列又称为FIFO表或LILO表。
记为:Q(D,R),D是数据元素的有限集合;R是数据元素之间关系的有限集合。
3.2.2队列的存储和运算实现
1、顺序队列
用一片连续的存储空间来存储队列中的数据元素,这样的队列称为顺序队列(Sequence Queue)。
2、链队列(Linked Queue)
链队列通常用单链表来表示,它的实现是单链表的简化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值