队列:
定义:一种可以实现“先进先出”的存储结构
分类:
链式队列——用链表实现
静态队列——用数组实现
静态队列通常都必须是循环队列
循环队列的讲解:
1,静态队列为什么必须是循环队列
如果不是循环队列,会造成空间的巨大浪费
2,循环队列需要几个参数来确定 以及它们的含义
需要2个参数来确定
front rear
两个参数不同场合有不同的含义
先死记住就行
1,队列初始化 front和rear的值都是零
2,队列非空
front代表的是队列的第一个元素
rear代表的是队列的最后一个有效元素的下一个元素
3,队列空
front和rear的值相等,但不一定是零
3,循环队列各个参数的含义
4,循环队列入队伪算法讲解
将值存入r的位置
正确的写法是: r = (r+1)%数组的长度
5,循环队列出队伪算法讲解
f = (f + 1 )%数组的长度
6,如何判断循环队列是否为空
如果front和rear的值相等,则该队列就一定相等
7,如何判断循环队列是否已满
预备知识:
front 的值可能比rear大,
front的值也可能比rear小
当然也可能两者相等
两种方式:
1,多增加一个标志参数(一般不用这种方式)
2,少用一个元素
如果r和f的值紧挨着,则队列已满
if( (r+1)%数组长度 == f )
{ 已满 } else { 不满 }
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog