网站大量收购独家精品文档,联系QQ:2885784924

第3章栈与队列B.pptVIP

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

告 示 为保证电信6、7、8班和通信1、2班同学的正常上课权限,请同学们依下图就座,敬请配合! 数据结构课程的内容 实验一 线性表的插入与删除 以福彩和体彩选号器为设计实例,重点掌握循环链表的插入和删除操作。 1. 不仅按实验要求完成了福彩和体彩的摇号模拟,而且还补充了用户填单及获奖等级,逼真、有趣; 上堂课遗留问题讨论 第三章 栈和队列 3.1 栈(Stack) 定 义 教材P59对队列有更详细定义: 链队列示意图 顺序队示意图 问:什么叫“假溢出” ?如何解决? 答:在顺序队中,当尾指针已经到了数组的上界,不能再有入队操作,但其实数组中还有空位置,这就叫“假溢出”。 例2 :数组Q[n]用来表示一个循环队列,f 为当前队列头元素的前一位置,r 为队尾元素的位置。假定队列中元素的个数小于n,计算队列中元素的公式为: (A) r-f (B)(n+f-r)% n (C)n+r-f (D) (n+r-f)% n 问:为什么要设计队列?它有什么独特用途? 离散事件的模拟(模拟事件发生的先后顺序); 操作系统中多道作业的处理(一个CPU执行多个作业); 3. 简化程序设计。 讨论(代本章小结) 线性表、栈与队的异同点 相同点:逻辑结构相同,都是线性的;都可以用顺序存储或链表存储;栈和队列是两种特殊的线性表,即受限的线性表(只是对插入、删除运算加以限制)。 不同点: ① 运算规则不同,线性表为随机存取,而栈是只允许在一端进行插入和删除运算,因而是后进先出表LIFO;队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表FIFO。 ② 用途不同,线性表比较通用;堆栈用于函数调用、递归和简化设计等;队列用于离散事件模拟、多道作业处理和简化设计等。 * 讲 台 电信7班 通信1班 (4列) (4列) 旁听席(最后2行) 电信8班1列 电信6班 电信8班 通信2班 (3列) (3列) (3列) 前门 后门 上机情况: 信6班—16人 信7班—17人 信8班—23人 通1班—23人 通2班—27人 实验内容: 实验小结: 通信一班杨帆同学的设计有独到之处。 教师点评 2. 界面及菜单制作精致,配色协调,尤其是菜单选项相互链接,对用户十分友好; 3. 所有不合法的情况几乎全部考虑到了,并做了恰如其分的对应处理(如输入月份错误不能容忍,但输入数字错误可以重来),思维严谨,周密。 改进建议:目前的摇号程序仍属伪随机方式,用月和日期作为“种子”重复性太强,如果改用C中提供的time()函数,读取当前时间值,将其作为“种子”,随机性会更强。 ———推荐查阅《C语言编程常见问题解答 》P190 “怎样产生随机数?” 教材P43中case1: DelFirst(hb,qb);InsFirst(ha,qb); 是先删除后插入,有无风险?这两条语句能否颠倒? 2. 教材P53表3.1中,?1和?2哪个对应栈顶元素,哪个对应键盘输入字符? 答:根据P53Precede()函数可知,?1对应栈顶元素。因此: 答:①无风险,因为删除语句中没有free(p)操作,且链表的合并无需删除结点,只需重链指针。 ② 可以颠倒次序,但会繁琐些,因为InsFirst的入口参数qb还得作为输出参数被送出来。 若 栈顶元素 操作符,则退栈、计算,结果压入OPND栈; 栈顶元素= 操作符且不为‘#’,脱括号(弹出左括号); 栈顶元素 操作符,压入OPTR栈。 3.2 队列(Queue) 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 3.2 队列 与同线性表相同,仍为一对一关系。 顺序队或链队,以循环顺序队更常见。 只能在队首和队尾运算,且访问结点时依照先进先出(FIFO)的原则。 关键是掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。 基本操作有入队或出队,建空队列,判队空或队满等操作。 3. 存储结构 4. 运算规则 5. 实现方式 2. 逻辑结构 只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表 (头删尾插) 队列 (Queue)是仅在表尾进行插入操作,在表头进行删除操作的线性表。 表尾即 an 端,称为 队尾 ; 表头即 a1 端,称为队头。 它是一种先进先出(FIFO)的线性表。 例如:队列 Q= (a1 , a2 , a3 , ……….,an-1 , an ) 插

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档