最新数据结构队列Queue

上传人:博****1 文档编号:588460688 上传时间:2024-09-08 格式:PPT 页数:17 大小:817KB
返回 下载 相关 举报
最新数据结构队列Queue_第1页
第1页 / 共17页
最新数据结构队列Queue_第2页
第2页 / 共17页
最新数据结构队列Queue_第3页
第3页 / 共17页
最新数据结构队列Queue_第4页
第4页 / 共17页
最新数据结构队列Queue_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《最新数据结构队列Queue》由会员分享,可在线阅读,更多相关《最新数据结构队列Queue(17页珍藏版)》请在金锄头文库上搜索。

1、Joey.zhuQ尽尽浆浆稀稀炽炽照照寿寿厌厌靳靳咸咸稍稍缀缀练练内内蜒蜒位位淆淆谗谗鳞鳞主主挫挫赏赏乎乎伯伯精精滓滓署署廷廷建建偏偏缺缺蹲蹲蛰蛰数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue主要内容主要内容数据结构的概念数据结构的概念队列的定义及应用队列的定义及应用队列的基本操作队列的基本操作链队列和循环队列实现链队列和循环队列实现迷宫游戏迷宫游戏inet_itoa引发的思考引发的思考厢厢砒砒广广罪罪绢绢匝匝痹痹杜杜轰轰糯糯渗渗攻攻锹锹拆拆鉴鉴骚骚刨刨茨茨热热夜夜崎崎明明错错雹雹盏盏运运辨辨榜榜料料倔倔僧僧剖剖数数据据结结构构队队列列Queue数数据据结结构构队队列列Q

2、ueue数据结构的概念数据结构的概念数据结构(数据结构(Data Structure)是数据的组织方式。程序中用到)是数据的组织方式。程序中用到的数据都不是孤立的,而是有相互联系的,根据访问数据的需的数据都不是孤立的,而是有相互联系的,根据访问数据的需求不同,同样的数据可以有多种不同的组织方式。求不同,同样的数据可以有多种不同的组织方式。 数据的组织方式包含了数据的组织方式包含了存储方式存储方式和和访问方式访问方式这两层意思,二者这两层意思,二者是紧密联系的。是紧密联系的。例如,数组的各元素是一个挨一个存储的,并且每个元素的大例如,数组的各元素是一个挨一个存储的,并且每个元素的大小相同,因此数

3、组可以提供按下标访问的方式,结构体的各成小相同,因此数组可以提供按下标访问的方式,结构体的各成员也是一个挨一个存储的,但是每个成员的大小不同,所以只员也是一个挨一个存储的,但是每个成员的大小不同,所以只能用能用.运算符加成员名来访问,而不能按下标访问。运算符加成员名来访问,而不能按下标访问。 一个问题中数据的存储方式和访问方式就决定了解决问题可以采用什么样的算法,要设计一个算法就要同时设计相应的数据结构来支持这种算法。所以对于面向过程的程序设计:算法算法+数据结构数据结构=程序程序 蚀蚀势势沁沁蔗蔗麻麻竖竖乒乒巳巳翼翼仆仆愧愧蜂蜂蠕蠕论论锨锨婚婚荤荤歹歹宁宁鹏鹏鼠鼠堤堤型型猎猎娜娜讥讥淳淳凛凛

4、谤谤象象方方豫豫数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue队列的定义队列的定义队列(队列(Queue)是一种先进先出()是一种先进先出(FIFO)的线性表。)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。它只允许在表的一端进行插入,而在另一端删除元素。允许插入元素的一端叫队尾(允许插入元素的一端叫队尾(Rear),),允许删除元素的一端叫队头(允许删除元素的一端叫队头(Front)。)。插入元素叫做入队,删除元素叫出队。插入元素叫做入队,删除元素叫出队。敏敏祟祟蛾蛾择择秽秽杏杏益益盈盈瑚瑚陈陈捶捶墅墅继继又又篙篙寺寺蜘蜘佐佐馅馅挎挎乃乃稳稳孽孽魏魏臂臂然然

5、刚刚崭崭镐镐拟拟恿恿奢奢数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue双端队列双端队列双端队列双端队列队列的变种队列的变种双端队列是限定插入和删除操作在表的两端进行的线性表。双端队列是限定插入和删除操作在表的两端进行的线性表。受限的双端队列受限的双端队列输出受限输出受限输入受限输入受限咨咨脐脐晰晰具具怕怕演演路路氯氯粟粟刨刨鼻鼻登登靛靛通通瘁瘁寻寻鞋鞋隶隶箭箭抹抹葫葫宛宛碳碳吸吸憨憨盎盎肖肖蓉蓉及及桑桑够够岂岂数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue队列的应用队列的应用打印机打印机允许多道程序运行的操作系统的作业排队允许多道程序运行的操作系统的

6、作业排队操作系统管理和分配系统资源操作系统管理和分配系统资源多进程下的管道通讯结构多进程下的管道通讯结构操作系统中消息机制操作系统中消息机制队列是一种应用很广泛的数据结构,对于各队列是一种应用很广泛的数据结构,对于各种具有种具有“先进先出先进先出”需要排队处理的问题,需要排队处理的问题,都可以应用队列来解决。都可以应用队列来解决。尼尼蚜蚜星星炽炽词词僵僵始始损损骤骤孝孝苏苏介介硼硼童童疚疚尹尹矿矿剑剑律律娥娥谆谆纺纺萄萄寓寓藐藐餐餐略略符符溅溅悬悬戍戍沮沮数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue队列的基本操作队列的基本操作InitQueue(&Q)DestroyQu

7、eue(&Q)ClearQueue(&Q)QueueEmpty(&Q)QueueLength(&Q)GetHead(&Q,&e)EnQueue(&Q,&e)DeQueue(&Q,&e)QueueTraverse(&Q,visit()构造空队列构造空队列销毁队列销毁队列清空队列清空队列检测队列是否为空检测队列是否为空获取队列长度获取队列长度获取队头元素获取队头元素插入元素插入元素删除元素删除元素队列中每个元素调用队列中每个元素调用visit()()敲敲剃剃诌诌恳恳屈屈澳澳葵葵并并斟斟酥酥滥滥酿酿棠棠似似炔炔乏乏罩罩侠侠协协表表坑坑酉酉澎澎桥桥阻阻冰冰宏宏复复荫荫池池坐坐郧郧数数据据结结构构队队列

8、列Queue数数据据结结构构队队列列Queue链队列和循环队列链队列和循环队列数据的存储方式链式存储 链队列顺序存储 顺序队列,循环队列链队列长度可以不断变长,而顺序队列或循环队列链队列长度可以不断变长,而顺序队列或循环队列都有最大长度的限制都有最大长度的限制消消另另跺跺胳胳蓑蓑扼扼蘑蘑减减辖辖漓漓刀刀习习咀咀铭铭彼彼亚亚商商苏苏鹃鹃腹腹欠欠浩浩瓤瓤田田疟疟朽朽偏偏赫赫豆豆霖霖垢垢味味数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue顺序队列顺序队列辫辫工工借借泞泞嘲嘲铬铬制制扭扭肄肄莉莉拾拾蜒蜒翻翻揩揩杰杰傲傲盲盲抉抉尺尺年年申申乔乔阅阅氰氰糖糖特特阳阳乞乞枣枣页页救救怂怂

9、数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue循环队列循环队列判断队列空间是空还是满可以有判断队列空间是空还是满可以有3 3种处理方法:种处理方法:1.1.设置个标志位来区别队列空还是满设置个标志位来区别队列空还是满2.2.少用一个元素空间,约定以队列头指针在队列尾指针的下一少用一个元素空间,约定以队列头指针在队列尾指针的下一位置上作为队列满的标志位置上作为队列满的标志3.3.记录队列中元素个数是否到限定的最大值记录队列中元素个数是否到限定的最大值恶恶励励扁扁执执递递蛤蛤粕粕软软跑跑亏亏郧郧内内滦滦樟樟薪薪蓝蓝抄抄亥亥诌诌廷廷滦滦脸脸抒抒晃晃丹丹叔叔遍遍沛沛诫诫乱乱乌乌匡

10、匡数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue链队列链队列庚庚紊紊墩墩羊羊幽幽虑虑挚挚砧砧甘甘戈戈舍舍缚缚且且瘫瘫复复吼吼蹿蹿粥粥镇镇贾贾冯冯艳艳辑辑微微毅毅伎伎口口酚酚纤纤艳艳亦亦梳梳数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue迷宫游戏迷宫游戏现在我们用队列解决一个有意思的问题定义一个二维数组:int maze55 = 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, ;它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能

11、斜着走,要求编程序找出从左上角到右下角的路线。篡篡宦宦竞竞辛辛缔缔丘丘以以疤疤吾吾枷枷峪峪列列朗朗游游边边绦绦弹弹裴裴亚亚首首狱狱锋锋傲傲硕硕撩撩影影景景喜喜峨峨征征玖玖纪纪数数据据结结构构队队列列Queue数数据据结结构构队队列列Queueinet_itoainet_itoa引发引发的思考的思考函数原型:函数原型:char *inet_ntoa (struct in_addr);功能:讲整型的功能:讲整型的ip转成点分十进制的字符串转成点分十进制的字符串它这字符串存到哪去了?它这字符串存到哪去了?我没有在形参中传地址进去啊,这不是要返回局部变量了吗?我没有在形参中传地址进去啊,这不是要返回局

12、部变量了吗?看代码后发现,原来这个变量是声明成了看代码后发现,原来这个变量是声明成了static类型类型的,也就表示这个函数不可重入的,也就表示这个函数不可重入诈诈蹄蹄翱翱攘攘版版洒洒豌豌莽莽芜芜边边卧卧蝶蝶玖玖磨磨络络赣赣输输削削赛赛斧斧卧卧帝帝膨膨撂撂惑惑躲躲惠惠唐唐甄甄洁洁兄兄雍雍数数据据结结构构队队列列Queue数数据据结结构构队队列列Queueinet_itoa引发引发的思考的思考Static声明的变量在声明的变量在C语言中有两方面的特征:语言中有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋

13、值。这一点是在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。它与堆栈变量和堆变量的区别。2)、变量用、变量用static告知编译器,自己仅仅在变量的作告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。用范围内可见。这一点是它与全局变量的区别。浓浓海海灾灾陵陵馒馒缘缘酪酪老老豫豫呜呜窍窍耿耿捌捌烛烛捎捎徊徊黍黍程程惹惹佩佩撩撩好好臀臀灼灼金金伍伍屑屑耍耍逊逊把把茸茸恩恩数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue编译器如何区分同名的全编译器如何区分同名的全局变量和静态局部变量的局变量和静态局部变量的?#includeint

14、 data = 10;int main()static data = 5;printf(%dn,data);return 0;inet_itoa引发引发的思考的思考慑慑庞庞龙龙酉酉模模兜兜跪跪灰灰涝涝抨抨窝窝磕磕阀阀让让坤坤瘩瘩咐咐挞挞仗仗茁茁趾趾宏宏堤堤宵宵治治触触蹦蹦冬冬奖奖铰铰揭揭程程数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue在函数内是编译器如何区别同名的全局变量和局部变量的?在函数内是编译器如何区别同名的全局变量和局部变量的?使用使用 : 可以引用全局变量,可以我编译不过?可以引用全局变量,可以我编译不过?inet_itoa引发引发的思考的思考越越磅磅岛岛曲曲漂漂盐盐官官瑰瑰惠惠厉厉乍乍酗酗焚焚书书窜窜鄙鄙缝缝绎绎卖卖嗅嗅辕辕敏敏胚胚隅隅遮遮斥斥幢幢棚棚冒冒淘淘软软痒痒数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue17Thank you凤凤浊浊岭岭橡橡押押神神量量砧砧讥讥冤冤氨氨标标枪枪斋斋猖猖壬壬伐伐秃秃眼眼钱钱力力辱辱窗窗垃垃曝曝瀑瀑雇雇愧愧写写寻寻疫疫像像数数据据结结构构队队列列Queue数数据据结结构构队队列列Queue

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号