【郝斌数据结构自学笔记】35-46_队列的定义、分类_链式队列伪算法的讲解_循环队列伪算法的讲解

35 _ 队列1 _ 什么是队列

线性结构的两种常见应用之二 队列

定义:

         一种可以实现“先进先出”的存储结构

36 _ 队列2 _ 队列的分类    链式队列伪算法的讲解

分类:

         链式队列:用链表实现

         静态队列:用数组实现

37 _ 队列3 _ 学习循环队列必须要弄清楚的7个问题概述

静态队列

         静态队列通常都必须是循环队列

         循环队列的讲解:

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

                   2)循环队列需要几个参数来确定

                   3)循环队列各个参数的含义

                   4)循环队列入队伪算法讲解

                   5)循环队列出队伪算法讲解

6)如何判断循环队列是否为空

7)如何判断循环队列是否已满

 38 _ 队列4 _ 静态队列为什么必须是循环队列

如果要删除元素(出队),f只能加;如果要增加元素(入队),r只能加。(按照一般数组的方法)。r指向当前队列的下一个位置。

 

39 _ 队列5 _ 循环队列需要几个参数来确定及其含义的讲解

需要2个参数来确定

front

rear

两个参数不同场合有不同的含义

建议初学者先记住,然后慢慢体会

1)队列初始化

front和rear的值都是零

2)队列非空

front代表的是队列的第一个元素,rear代表的是队列的最后一个有效元素的下一个元素

3)队列空

front和rear的值相等,但不一定是零

40 _ 队列6 _ 循环队列各个参数的含义

41 _ 队列7 _ 循环队列入队伪算法讲解

两步完成:

1.将值存入r所代表的位置

2.错误的写法:r=r+1;

正确写法是:r=(r+1)%数组的长度


42 _ 队列8 _ 循环队列出队伪算法讲解

f=(f+1)%数组的长度


43 _ 队列9 _ 如何判断循环队列是否为空

如果front于rear的值相等,则该队列就一定为空。

44 _ 队列10 _ 如何判断循环队列是否已满

若f、r相等,不知道队列到底是空还是满。

预备知识:

         front的值可能比rear大,也可能比rear小,也可能两者相等。

如何判断循环队列是否已满

两种方式:

         1.多增加一个标志参数

         2.少用一个元素【通常使用第二种方式】

                  如何判断队列已满:如果f和r的值紧挨着,则队列已满

                   用C语言伪算法表示就是:

                   if((r+1)%数组长度==f)

                            已满

                   else

                            不满


45 _ 复习 _ 求链表的长度

46 _ 复习上节课队列知识

队列

         定义:一种可以实现先进先出的存储结构

分类:

静态队列

         链式队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值