郝斌老师【数据结构入门】之队列

线性结构的两种常见应用之二
定义
一种可以实现“先进先出”的存储结构
分类
链式队列 --用链表实现
静态队列 --用数组实现
静态队列通常都必须是循环队列

循环队列:
1.静态队列为什么必须是循环队列

2.循环队列需要几个参数来确定
需要两个参数确定
front
rear

3.循环队列各个参数的含义
2个参数不同场合有不同含义
建议初学者先记住,然后慢体会
1)队列初始化
front和rear的值都是零
2)队列非空
front代表的是队列的第一个元素
rear代表的是队列的最后一个有效元素的下一个元素
3)队列空
front和rear的值相等,但不一定是零

4.循环队列入队伪算法
1)将值存入r所代表的位置
2)错误的写法:r=r+1
正确吃的写法:r=(r+1)%数组的长度

5.循环队列出栈伪算法
front = (front+1) % 数组的长度

6.如何判断循环队列是否为空
如果front与rear的值相等
则该队列就一定为空

7.如何判断循环队列是否已满
预备知识:
front的值可能比rear大,也可能比rear小,当然也可能两者相等。
两种方式:
1)多增加一个标枳识参数
2)少用一个元素【通常使用第二种方式】
如果front和rear的值紧挨着,则队列已满
用c语言伪算法表示:

if((r+1)%数组长度 == f)
  已满
 else
  不满

算法:
入队
出队

队列的具体应用:
一些和时间有关的操作有队列的影子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值