浙教版信息技术高中选修1 数据与数据结构3.3.1 栈的概念、特性与基本操作-教学课件.pptxVIP

浙教版信息技术高中选修1 数据与数据结构3.3.1 栈的概念、特性与基本操作-教学课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  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文档。上传文档
查看更多

3.3.1栈的概念、特性与基本操作浙教版信科技

目录壹1.栈的概念与特性叁3.栈的应用实例贰2.栈的基本操作

将4本书依次放入收纳箱论语孟子大学中庸

中庸大学孟子论语将4本书依次从收纳箱取出

弹匣中子弹装弹过程(入栈)网页浏览器的“后退”键文字处理软件的“撤销”操作消毒桶中餐盘的取放

栈的概念)(中庸大学孟子论语栈顶:栈底:

√先进后出、后进先出√有限序列性栈的特性)(中庸大学孟子论语栈顶:栈底:

不同点栈是“先进后出”,仅在栈顶一端进行入栈或出栈操作;队列是“先进先出”,可以在两端进行操作,其中队尾一端入队,队首一端出队。相同点有限序列,线性表结构,元素个数是有限的,可以是空的,也可以包含多个元素。问题与讨论:栈与队列有什么相同点与不同点?

ABCD数组st0123栈顶:DCB栈底:Atop=3top=2top=1top=0使用数组st来存储栈栈的存储

topDCBA人栈的链式存储结构栈顶:DCB栈底:Atop=3top=2top=1top=0栈的存储

下标3210空栈top=-1st=[]*4栈的基本操作:建栈

top=top+1st[top]=Atop=top+1st[top]=Btop=top+1st[top]=Ctop=top+1st[top]=D下标321top—→03top→21032top→10top—3210DCBA④CBA③BA②A①栈的基本操作:入栈

DCBAa=[A,B,C,D]foriina:下标3210栈的基本操作:入栈

思考:·若栈空则不能出栈,判断栈空的条件是什么?下标top→3210DCBA出栈时栈顶元素取出,同时top值减1·出栈和取出栈顶元素有什么区别?·输出栈顶元素代码如何实现?print(st[top])top=-1栈的基本操作:出栈

whiletop-1:print(st[top],end=)top=top-1运行结果:DCBA下标top→3D2C1B0A栈的基本操作:出栈

字母A,B,C按顺序入栈,请问出栈的顺序可能有哪几种?A,B,CB,C,AA,C,BC,B,AB,A,CC,A,B问题与讨论:

问题与讨论:字母A,B,C按顺序入栈,请问出栈的顺序可能有哪几种?A,B,CA,C,BB,A,CB,C,AC,B,AC,A,BABC

栈的实例:进制转换第一章项目挑战中的“用户角色特征值”,把该值(十进制)转换成二进制,采用“除二取余法”,利用栈来存储每次计算得到的余数。(610=(110)?26......023......121......10110

栈的实例:进制转换特征值的变化:6→3→1→02top→1100n=1②入栈过程21top→00n=3①......0......1......1top→210110n=0③222631

栈的实例:进制转换

栈的实例:进制转换stack=[-1]*100top=-1n=int(input(请输入十进制整数:)whileX=n%2top=top+1n=n//2whiletop=0:print(stack[top],end=)

栈的实例:括号匹配判断一个数学计算式中的括号(只有小括号)是否匹配。(6×(3+2)-4)÷26×(3+2-4)÷2(6×(3+2-4)÷2)6×)3+2(-4(÷2匹配不匹配不匹配不匹配括号的数量括号的位置

栈的实例:括号匹配(6×(3+2-4)÷2第一步:抽象与建模1.计算式中只关注括号,忽略其他字符(())2.判断左右括号的数量与位置时,采用栈结构来设计从左往右遍历,遇到左括号,入栈,遇到右括号,出栈。①栈空,出现右括号,不匹配②遍历结束,栈中还有左括号(栈不空),不匹配③遍历结束,栈空,匹配

栈的实例:括号匹配第二步:设计算法(())top→10②top→③0top=-1④1top→0

从左往右遍历结束?↓N该字符是左括号?N出栈YN该字符是右括号?Y栈空?不匹配栈空?Y匹配N不匹配入栈YN栈的实例:括号匹配

st=[]*100;top=-1#建栈fla

文档评论(0)

180****6794 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档