《大话数据结构》--队列学习心得

(1)队列的定义:

操作系统和客服系统中,都应用了一种数据结构来实现先进先出的排队功能,这就是队列。

队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO。

 

(2)队列的抽象数据类型

 

 

(3)循环队列

线性表有顺序存储和链式存储,队列作为一种特殊的线性表,也同样存在这两种存储方式。

1.队列顺序存储的不足。
假设一个队列有n个元素,则顺序存储的队列需要建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的一端即是队头。入队在队尾追加一个元素,不需要移动任何元素。出队在队头取出一个元素,后面的所有元素需要往前移动。

2.循环队列的定义:头尾相接的顺序存储结构称为循环队列。

队列满的条件是(rear+1)%QueueSize == front
计算队列长度公式(rear - front + QueueSize) % QueueSize

 

(4)队列的链式存储结构及实现
队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称链队列。

将队头指针指向链表队列的头结点,而队尾指针指向终端结点。

空队列时,front和rear都指向头结点。

 

 

队列的链式存储结构--入队操作

 

队列的链式存储结构--出队操作

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux技术芯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值