2016/02/28 09:13
线性结构两种应用之一: 队列(需要花时间好好理解!)
定义:一种可以实现“先进先出”的存储结构
分类:链式队列(链表)和静态队列(数组)
静态队列通常都必须是循环队列
循环队列的讲解:
1. 静态队列为什么必须是循环队列:
2. 循环队列需要几个参数来确定:
需要两个参数来确定,这两个参数在不同场合有不同的含义
建议初学者先记住,然后慢慢体会:
1):队列初始化:font和rear的值都为零
2):队列非空:font代表队列的第一个元素
rear代表队列的最后一个有效的元素
3):队列空:font和rear的值相等,但不一定是零
3. 循环队列各个参数的含义
4. 循环队列入队伪算法的讲解
5. 循环队列出队伪算法的讲解
6. 如何判断循环队列是否为空
7. 如何判断循环队列是否已满
循环队列入队伪算法讲解:(f和r)
两步完成:1.将值存入r所代表的位置
2.错误的写法r= r+1
正确的写法r = (r+1)%数组的长度
出对伪算法讲解:f = (f+1)%数组的长度
如何判断循环队列是否为空:如果f和r的值相等,则该队列就一定为空
已满:1.多增加一个参数
2.少用一个元素【这是常用的方法】
如果r湖人f的值紧挨着,则队列已满
用c语言伪算法表示:if((r+1)%数组长度 = f);已满
else 不满;
队列的具体应用:所有和时间有关的操作都有队列的影子。