数据结构-队列课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构-队列课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 队列 课件
- 资源描述:
-
1、第二章第二章 队列队列吉林大学计算机学院谷方明例子:电话号码例子:电话号码p向计算机专业的同学要电话号码,他(她)不会向计算机专业的同学要电话号码,他(她)不会直接给你的,原因你懂的。直接给你的,原因你懂的。p他(她)会告诉你一串加密过的数字,同时告诉他(她)会告诉你一串加密过的数字,同时告诉你解密的规则。规则是这样的:首先将第你解密的规则。规则是这样的:首先将第1个数个数删除,紧接着将第删除,紧接着将第2个数放到这串数的末尾,再个数放到这串数的末尾,再将第将第3个数删除并将第个数删除并将第4个数放到这串数的末尾个数放到这串数的末尾,直到剩下最后一个数,把这个数也删除。按删除直到剩下最后一个数
2、,把这个数也删除。按删除的顺序将删除的数连在一起,就是电话号了。的顺序将删除的数连在一起,就是电话号了。p例如:例如:586591461.队列的定义队列的定义p队列(队列(queue)是一种操作受限的线性表,)是一种操作受限的线性表,它的所有它的所有插入都在表的一端进行,所有的删除都在表的另一端插入都在表的一端进行,所有的删除都在表的另一端进行进行。p例子例子食堂窗口进程调度p队列的特性:先进先出。队列的特性:先进先出。栈也称作后进先出表栈也称作后进先出表(First In First Out,FIFO)。p队头队头(frontfront):进行删除的一端;p队尾队尾(rearrear):进行
3、插入的一端;p空队列空队列:没有元素的队列。p插入:入队p删除:出队术语术语a1a2a3a4a5队尾队尾队头队头入队入队出队出队队列的基本操作队列的基本操作(1)队列初始化)队列初始化(2)入队)入队 (插入)插入)(3)出队(删除)出队(删除)(4)读取队首元素)读取队首元素(5)判断队列是否空)判断队列是否空 (6)确定队列中元素个数)确定队列中元素个数(7)置空队列)置空队列 2.队列的顺序存储队列的顺序存储p按按顺序存储方式顺序存储方式存放队列元素,称为顺序队。存放队列元素,称为顺序队。p存放队列元素的存放队列元素的数组数组:T qlistMaxQSize front 队首队首元素的下
4、标元素的下标 rear 队尾队尾元素的元素的下标下标加加 1队列空:front=rear队列满:rear=MaxQSize 012MaxQsize-1front=0rear=0初始初始状态状态p插入队尾元素:插入队尾元素:rear=rear+1front=0rear=1a0012MaxQsize-1a0进队进队 front=0a0a1a2012MaxQsize-1a1 a2进队进队rear=3p删除队首元素:删除队首元素:front=front+1front=1a1a2012MaxQsize-1a0出队出队rear=3front=3012MaxQsize-1a1 a2出队出队rear=3假溢出
5、假溢出012MaxQsize-1rear=nfront=n-3 an-3an-2 无法利用的空间无法利用的空间循环队列循环队列front=n-3 an-3an-2012MaxQsize-1rear=n-1n-3rear=n-1an-3an-20.1.front=n-3n-2插入元素插入元素:rear顺时针移动一位顺时针移动一位front=n-3 an-3an-2012MaxQsize-1rear=0 xn-3an-3rear=0an-20.1n-1.front=n-3n-2xrear=(rear+1)MOD MaxQSize删除元素:删除元素:front顺时针移动一位顺时针移动一位front=
6、(front+1)MOD MaxQSize;rear0front=9.1.CD删除删除Crearfront=00.1.D循环队列循环队列pfront指定队首位置,删除一个元素就将指定队首位置,删除一个元素就将front顺顺 时针时针移动一位;移动一位;p rear指向元素要插入的位置,插入一个元素指向元素要插入的位置,插入一个元素就将就将rear顺时针顺时针移动一位;移动一位;p count存放队列中元素的个数,当存放队列中元素的个数,当count等于等于MaxQSize时,不可再向队列中插入元素。时,不可再向队列中插入元素。队空:count=0队满:count=MaxQSize顺序队列类顺序
7、队列类AQueue的类声明的类声明template class AQueue private:int front;/队首所在数组元素下标队首所在数组元素下标 int rear;/新元素要插入的位置(下标)新元素要插入的位置(下标)int count;/队列中元素个数队列中元素个数 T*QArray;/存放队列元素的数组存放队列元素的数组 int Size;/存放队列的数组规模存放队列的数组规模public:AQueue(int MaxQueueSize=10);/构造函数构造函数 AQueue()delete QArray;/析构析构void QInsert(const T&item);/向队
8、尾插入元素向队尾插入元素itemvoid QDelete(T&item);/删除队首元素并将该元素值保存至删除队首元素并将该元素值保存至itemT QFront()const;/存取队首元素值存取队首元素值bool isEmpty()const return count=0;/检测队列检测队列是否为空是否为空bool isFull()const return count=Size;/检测队检测队列是否为满列是否为满void QClear()front=rear=count=0;/清空队列清空队列;插入算法插入算法ADL描述描述算法算法QInsert(A,item)/在队列在队列A中将元素中将元
9、素item插入队尾插入队尾QI1.队列满?队列满?IF count size THEN(PRINT“队列已满无法插入队列已满无法插入”.RETURN.)QI2.元素插入元素插入 Arear item./将新元素插入队尾将新元素插入队尾QI3.更新更新 rearMOD(rear 1,size)./更新队尾下标更新队尾下标 countcount 1./更新队列长度更新队列长度 C+实现实现template void AQueue:QInsert(const T&item)QArrayrear=item;rear=(rear+1)%Size;删除算法删除算法ADL描述描述算法算法QDelete(A.
展开阅读全文