数据结构 3章栈和队《精品》.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文档。上传文档
查看更多
2010-7-21 数据结构 . * 第三章 栈和队列 引言:对线性表 L=(a1,a2,,...,an), 可在任意第i(i=1,2,,...n,n+1)个位置插入新元素, 或删除任意第i(i=1,2,,...n)个元素 受限数据结构---- 插入和删除受限制的线性表。 1.栈(stack), 2.队列(queue). 3.1栈(stack) 3.1.1栈的定义和操作 1.定义和术语 ▲ 栈----限定在表尾作插入、删除操作的线性表。 (a1,a2, ,...,an) ←插入元素(进栈) ↑ ↑ ↘删除元素(出栈) 表头 表尾 (栈底) (栈顶) . * an a1 栈顶(top) 栈底(bottom) 出栈(pop) 进栈(push) ▲ 进栈----插入一个元素到栈中。或:入栈、推入、压入、push。 ▲ 出栈----从栈删除一个元素。或:退栈、上托、弹出、pop。 ▲ 栈顶----表中允许插入、删除元素的一端(表尾)。 ▲ 栈顶元素----处在栈顶位置的元素。 ▲ 栈底----表中不允许插入、删除元素的一端。 ▲ 空栈----不含元素的栈。 栈的示意图 . * ▲ 栈的元素的进出原则: “后进先出”,“Last In First Out”。 ▲ 栈的别名: “后进先出”表、“LIFO”表、反转存储器、地窖。 . * 2.栈的基本操作 (1) Initstack(s)----置s为空栈。 (2) Push(s,e)----元素e进栈s。 若s已满,则发生溢出。 若不能解决溢出,重新分配空间失败,则插入失败。 (3) Pop(s,e)----删除栈s的顶元素,并送入e 。 若s为空栈,发生“下溢”(underflow); 为空栈时,表示某项任务未开始或已完成。 (4) Gettop(s,e)----栈s的顶元素拷贝到e。 若s为空栈,则结束拷贝。 (5) Empty(s)----判断s是否为空栈。 若s为空栈,则Empty(s)为true;否则为false。 . * (1)输入A,B,C,产生输出A,B,C的过程: A B,C (1)A进栈 B,C (2)A出栈 B C (3)B进栈 (4)B出栈 C (5)C进栈 (6)C出栈 C A,B,C A A,B A,B A . * (2)输入A,B,C,产生输出C,B,A的过程: A B,C (1)A进栈 B A C (2)B进栈 C B A (3)C进栈 B A (4)C出栈 C (5)B出栈 (6)A出栈 C,B,A C C,B . * (3)输入A,B,C,产生输出B,C,A的过程: A B,C (1)A进栈 B A C (2)B进栈 A C (3)B出栈 C A (4)C进栈 A (5)C出栈 (6)A出栈 B,C,A B B,C B . * 当A,B,C依次进栈,C出栈后,由于栈顶元素是B,栈底 元素是A,而A不能先于B出栈,所以不能在输出序列中, 使A 成为C的直接后继, 即不可能由输入A,B,C产生输出C,A,B。 一般地,输入序列(...,ai,...,aj,...,ak,...)到 栈中,不能得到输出序列(...,ak,...,ai,...,aj,...)。 (1)初始状态 C B A (2)A,B,C进栈 B A (3)C出栈 C A,B,C (4)输入A,B,C,不能产生输出C,A,B: . * 设依次输入元素A,B,C到栈中,可得哪几种输出? 设依次输入元素C,B,A到栈中,可得哪几种输出? A,B,C (1) A,B,C (2) A,C,B (3) B,A,C (4) B,C,A (5) C,A,B (6) C,B,A C,B,A (1) A,B,C (2) A,C,B (3) B,A,C (4) B,C,A (5) C,A,B (6) C,B,A . * 讨论: 假定输入元素 A,B,C,D 到栈中,能得当哪几种输出? 不能得到哪几种输出序列? (1) A,B,C,D (7) B,A,C,D (13) C,A,B,D (19) D,B,C,A (2) A,B,D,C

文档评论(0)

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

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

1亿VIP精品文档

相关文档