第三章_栈和队列课2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章_栈和队列课2

* 循环队列:基本操作的算法描述 Status EnQueue(SqQueue Q,QElemType e) {   //队列Q存在,插入元素e为Q的队尾元素   if ((Q.rear+1)%MAXQSIZE==Q.front) return ERROR ;//队列满   Q.base[Q.rear]=e;   Q.rear=(Q.rear+1) %MAXQSIZE; return OK; } 3.4 队列 3.4.3 循环队列——队列的顺序表示和实现 * 循环队列:出队基本操作的算法描述 front rear 5 4 0 3 1 2 J1 J3 J2 出队操作前 front rear 5 4 0 3 1 2 J1 J3 J2 出队操作后 3.4 队列 3.4.3 循环队列——队列的顺序表示和实现 * 循环队列:出队基本操作的算法描述 3.4 队列 3.4.3 循环队列——队列的顺序表示和实现 (1)检查队列是否为空,若队空,则下溢错误; (2)取队首元素的值。 (3)将队首指针后移一个位置(即加1)。 * 循环队列:基本操作的算法描述 Status DeQueue(SqQueue Q,QElemType e) {   //队列Q存在,删除Q的队头元素,用e返回其值 //并返回OK,否则,返回ERROR   if (Q.rear==Q.front) return ERROR ;//队列空    e = Q.base[Q.front];   Q.front=(Q.front+1) %MAXQSIZE; return OK; } 3.4 队列 3.4.3 循环队列——队列的顺序表示和实现 * 小 结 线性表、栈与队的异同点 相同点:逻辑结构相同,都是线性的;都可以用顺序存储或链表存储;栈和队列是两种特殊的线性表,即受限的线性表(只是对插入、删除运算加以限制)。 不同点: ①运算规则不同,线性表为随机存取,而栈是只允许在一端进行插入和删除运算,因而是后进先出表LIFO;队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表FIFO。 ②用途不同,线性表比较通用;堆栈用于函数调用、递归和简化设计等;队列用于离散事件模拟、多道作业处理和简化设计等。 * 小 结 线性表 栈 队列 Insert(L, i, x) Insert(S, n+1, x) Insert(Q, n+1, x) ( 1? i ? n+1) Delete(L, i) Delete(S, n) Delete(Q, 1) ( 1? i ? n) * 栈和队列的逻辑结构定义和特性,并在各种问题中灵活使用 栈在两种存储结构(顺序存储结构和链式存储结构)下的实现方法 队列在两种存储结构(循环队列和链队列)下的实现方法 小 结 * 小 结 [学习要点] 栈 栈的抽象数据类型 栈的数组存储表示 栈的链接存储表示 栈的应用: 用后缀表达式求值;中缀表达式向后缀表达式转换 * 小 结 [学习要点] 队列 队列的抽象数据类型 队列的顺序存储表示 队列的链接存储表示 循环队列 实现各种队列的插入与删除算法 * 作 业 1. 设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1), Pop(),Push(2),Push(3), Pop(), Pop( ),Push(4), Pop( ),则出栈的数字序列为 何(这里Push(i)表示i进栈,Pop( )表示出栈)? (2) 能否得到出栈序列1423和1432?并说明为什么不能 得到或者如何得到。 (3)请分析 1,2 ,3 ,4 的24种排列中,哪些序列是可 以通过相应的入出栈操作得到的,有什么规律? * 3.1 栈 3.1.1 抽象数据类型-栈的定义 3.1.2 栈的表示和实现 3.2 栈的应用举例 3.2.1 数制转换 3.2.6 表达式求值 3.4 队列 3.4.1 抽象数据类型-队列的定义 3.4.2 链队列-队列的链式表示和实现 3.4.3 循环队列-队列的顺序表示和实现 第三章 栈和队列 * 下一小节 3.4 队 列 * 3.4 队列 队

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档