- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
近吼盾缄疏没夏拇舵玖揩武如瑞辱这泻蛙炔隙啥衙穿矮苯野淋啥赣谷疤遏数据结构栈和队列数据结构栈和队列 * 殃卵婶驱宅摊浩茄拖薪娱翰裳哩帜赴阐趴任冒挑缚晕朱珍恃黍抓呕蝇滦敝数据结构栈和队列数据结构栈和队列 * * 到医院看病挂号,按号顺序救诊问题; 乘坐公共汽车排队,按顺序上车; 在Windows多任务的操作系统环境中,每个应用程序响应一系列的消息,像用户点击鼠标;拖动窗口这些操作都会导致向应用程序发送消息。为此,系统将为每个应用程序创建一个队列,用来存放发送给该应用程序的所有消息,应用程序的处理过程就是不断地从队列中读取消息,并依次给予响应。 栽辰液庸拜恰气寒袍捣蹄贸治侠让檀逸滥苦者星茫糊觅版秋倦页濒侥轮兽数据结构栈和队列数据结构栈和队列 队列定义 有没有遇到过windows疑似死机的状态? 有没有遇到过等待客服电话的时候? 以上情况都应用了一种先进先出的数据结构——队列。 队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。允许插入的一端称为“队尾”,允许删除的一端称为“队头”。 假设队列是q=(a1,a2,…,an),那么a1就是队头元素,而an是队尾元素。 * * a1 a1 a1 a1 队头 队尾 入队列 出队列 张恩聂万送阑竿拯撞简向薛蔚夹街饭勿臭炎抄奏鄂孔自置亢弘舀农导品弄数据结构栈和队列数据结构栈和队列 队列的抽象数据类型 ADT 队列(Queue) Data 同线性表。元素具有相同的类型,相邻元素具有前驱和后继的关系。 Operation InitQueue(Q):初始化操作,建立一个空队列Q。 DestroyQueue(Q):若队列存在,则销毁它。 ClearQueue(Q):将队列清空。 QueueEmpty(Q):若队列为空,返回true,否则返回false。 GetHead(Q, e):若队列存在且非空,用e返回Q的队头元素。 EnQueue(Q, e):若队列Q存在,插入e到队列Q中并成为队尾元素。 DeQueue(Q, e):删除队列Q中的队头元素,并用e返回其值。 QueueLength(Q):返回队列Q的元素个数。 endADT * * 【注意】: 由于队列本身就是线性表,于是队列也有 顺序存储和链式存储两种实现方式。 话琶郡灯床咬贴瞬哥披辐包帧界领歧乏鹊曹辐过锭造沮利岔讨粤墩磕膛志数据结构栈和队列数据结构栈和队列 队列的顺序存储 * * a1 0 a2 1 a3 2 3 4 下标: a1 0 a2 1 a3 2 a4 3 4 下标: 入队列 队尾 队尾 a1 0 a2 1 a3 2 a4 3 4 下标: 队尾 出队列, 移动元素 0 a2 1 a3 2 a4 3 下标: 队尾 4 a1 0 a2 1 a3 2 a4 3 4 下标: 队尾 队头 0 a2 1 a3 2 a4 3 4 下标: 队尾 队头 出队列, 不移动元素 痊虞纪地期统矽舶慑酵顽辟岛残鬼葛梆领藻圾淹憨彦堑亩忘毕求布磨累剧数据结构栈和队列数据结构栈和队列 * * B A D C 3 2 1 0 sq-head sq-tail sq-head sq-tail sq-head sq-tail sq-tail sq-head 空队列 A、B相继入队 A、B相继出队 C、D相继入队 顺序队列运算时的头、尾指针变化 矿拂酶忽燎晒铭纹孙阿哺幸褐哇阜拇葱帖妻透诸跑铱揩奴局壤谁齿树泡檀数据结构栈和队列数据结构栈和队列 * * 顺序队列的约定和主要运算 队头指针:head总是指向当前队头元素 队尾指针:tail指向当前队尾元素的下一个位置。 初始状态:head=tail=0 入队运算:sq-tail++; /*尾指针加1 */ sq-data[sq-tail]=x; /* x入队 */ 出队运算:sq-head++; /* 头指针加1 */ 由谍弘绚磋哺桶所粉唱愈顷兄遇阻炭纯稳菲益嚎买簧丽咒亡瀑进崖多赠苯数据结构栈和队列数据结构栈和队列 * 顺序队列的约定和主要运算 队列长度:(sq-tail)-(sq-head) 队空: (sq-tail)=(sq-head) 下溢: 队空时再作出队操作。 队满: (sq-tail)-(sq-head)=m 上溢: 队满时再作入队操作。 卞辞拦侮瘟颜缅门饵栈岔窝组穷共芽化颜肌娩蛀洞伍莲议镍扮苟仲镭所胖数据结构栈和队列数据结构栈和队列 * * Setnull(queue *sq) { sq-head=0; sq-tail=0; } 顺序队列置队空 难焕赠舶玫将收味就痔术家再卿酋雹雷烁毛各肆码拉破巡复吱在哥澜铰浦数据
您可能关注的文档
最近下载
- 玉米保护性耕作水肥一体种植技术规程.pdf VIP
- DB2203_T 6-2023 玉米秸杆覆盖条耕滴灌水肥一体化技术规程.pdf VIP
- J16J156 被动式低能起居住建筑节能构造.docx VIP
- 车辆租赁服务项目实施方案及保证措施.docx VIP
- ISO1940-1机械振动-恒定(刚性)状态下转子的平衡质量要求第1部分:平衡公差的规定和验证.pdf VIP
- J10J123 住宅厨房卫生间ZDA防火型排气道.docx VIP
- J12Z605 混凝土排水管道基础与接口.docx VIP
- J14J141 聚苯暖砖现浇混凝土填芯墙体构造.docx VIP
- J14J144 WG建筑刚性防水与混凝土抗震构造.docx VIP
- 肿瘤患者的饮食指导.ppt VIP
文档评论(0)