- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主要内容 栈的定义 顺序栈 链栈 栈的应用举例 课堂作业 一、栈的定义 2、栈的逻辑结构 3、入栈与出栈 4、 栈的基本操作 ?初始化 IniStack(S): 构造一个空栈S,准备存放数据; 进栈操作 Push(S,x): 将数据元素x插入栈S,使x成为S的栈顶元素; 出栈操作 Pop(S): 当栈不空时返回栈顶元素为该函数的值,然后删除栈顶元素; 取栈顶元素 GetTop(S): 当栈不空时返回栈顶元素为该函数的值,但栈顶保持不变; 判栈空 EmptyStack(S): 若S为空栈则该函数值为1,否则为0。 二、栈的顺序存储结构 四、栈的应用举例 实现数制转换 表达式求值 (2)算术表达式求值 中缀式求值的算法 运算符和界限符统称为算符。根据算术四则运算的规则(即中缀式的运算规则),任两个相继出现的算符θ1和θ2之间的优先关系至多是下面三种关系之一: θ1 θ2 θ1的优先权低于θ2 θ1 =θ2 θ1的优先权等于θ2 θ1 θ2 θ1的优先权高于θ2 操作符优先级表 求表达式算法 算法需两个栈。一个是运算符栈(OPTR) ;另一个是操作数或运算结果栈(OPND) 。算法的基本思想是: (1)首先置操作数栈为空栈;为了使表达式中第一个运算符能够进栈,首先将一个优先权最低的运算符‘#’压入运算符栈中成为其栈底。 (2)从左向右依次读出表达式中的每一个字符, ①若为操作数,则将其压入操作数栈中,接着读出下一个字符; ②若为运算符,则和运算符栈的栈顶运算符比较优先权: ⅰ 如果读出的运算符的优先权高于运算符栈栈顶运算符的优先权,则将其压入运算符栈中,接着读出下一个字符; ⅱ 如果读出的运算符的优先权等于运算符栈栈顶运算符的优先权(即左右括号相遇),则从运算符栈中退出一个运算符(即左括号); ⅲ 如果读出的运算符的优先权低于运算符栈栈顶运算符的优先权,则从操作数栈连续退出两个操作数(先退出的是第二操作数,后退出的是第一操作数),从运算符栈中退出一个运算符,然后作相应的运算,并将运算结果压入操作数栈中。 例如:表达式3*(7-2),求值过程如下表: 解题的思路 当老鼠走到某个位置,前面没有路可走时,怎么办?要沿着老路回去。退回到哪里呢?退回到刚走的位置。这正好符合栈的特征,最近的最先出来。 需要解决的几个问题 迷宫如何表示? 位置如何保存在栈里? 如何确定当前位置是否有出路? 如何表示已经走过的位置? 谢谢,请批评指正。 第*页 目录 高等学校教师资格认定2011 数据结构 栈是限定仅能在表尾一端进行插入、删除操作的线性表 (a1, a2, ... , ai -1, ai , ai+1, …, an ) 插入 删除 1.??? 什么是栈 第一个进栈的元素在栈底,最后一个进栈的元素在栈顶, 不含元素的栈称为空栈。 出栈 Pop 进栈 Push 栈顶 栈底 top bottom 空栈 top bottom a1 a2 . . . an bottom top bottom top A A B C D E A B 栈操作图示 A进栈 B C D E 进栈 E D C 出栈 C D E top top top 栈的特点 后进先出LIFO top bottom top bottom top top top 栈属于加了限制条件的线性结构; 栈是后进先出的线性表; 进栈和出栈只能从栈的一个端点进行; 栈中的元素个数可以是0,此时是空栈; 栈的元素的个数是可以变化的,可以是多个,但不能是无穷多个; 每个栈中的元素的类型相同. 5、栈的特性 思考:假设有A,B,C三个元素进S栈的顺序是A,B,C,写出所有可能的出栈序列。 CBA ACB ABC CAB BAC BCA 如果是4个元素,那么它 不可能的出栈序列有哪些? 可能的出栈序列: 1243 1324 1342 2134 2143 2314 2431 3241 3214 3421 4321 不可能出现的出栈序列: 2413 3124 3412 4123 4231 4213 4312 用一个一维数组和一个整型变量来实现。 struct stack { datatype array[maxlen]; int top; } 栈数组 array[maxlen] 用来存放栈中所有元素; 整型变量top的整数值表示栈顶元素在数组array中的位置,也称为栈顶指针。 约定栈顶指针指向 向栈顶元素的位置 当栈用顺序结构存储时, 栈的基本操作如建空栈、 进栈、出栈等操作 如何实现? 顺
您可能关注的文档
- 数据结构(第1章).ppt
- 数据结构(第2章).ppt
- 数据结构(第一章).ppt
- 数据结构(线性表、栈、队列、二叉树、图).ppt
- 数据结构(顺序表类).ppt
- 数据结构-使用C语言朱战立.ppt
- 数据结构-栈及其应用.ppt
- 数据结构-散列表.ppt
- 数据结构-用C语言描述.ppt
- 数据结构-稀疏矩阵的三元组表存储方法.ppt
- T_DGWIA 002—2020_环保免烧实心砖.pdf
- T_DFLX 014-2021_梅花鹿布鲁氏菌病净化措施技术规范.pdf
- T_CNAGI 002-2022_轻量化玻璃瓶罐生产技术规范.pdf
- T_CES 131—2022_电力作业现场智能化安全管控系统第1部分:总则.pdf
- T_ELINGYUNBIAN 005—2020_绿色食品枇杷生产技术规程.pdf
- T_SHSFJD 0001—2020_基于区块链技术的电子数据存证规范.pdf
- T_GIEHA 023—2020_品牌评价空气净化产品设计制造商.pdf
- T_CES 123—2022_特殊环境应急电源柴油发电系统通用技术规范.pdf
- T_CNITA 03102—2023_墙体玻璃纤维网格布.pdf
- T_SHPPA 010-2021_药品生产数字化质量保证技术要求.pdf
最近下载
- 充电桩采购安装投标方案.pdf VIP
- 2025四川甘孜州城市综合执法大队招聘编外辅助人员5人笔试备考试题及答案解析.docx VIP
- 部编版三年级下册晋升职称无生试讲稿——24.火烧云 第二课时(1).doc VIP
- 管道非开挖修复施工方案.docx
- 《老年人能力评估实务》教案 项目四 老年人能力评估实务.docx VIP
- 《西门子能源管理系统》.pdf VIP
- 20210219-中金公司-行业轮动系列(1):如何从微观结构探析行业轮动信息.pdf VIP
- 2025四川甘孜州城市综合执法大队招聘编外辅助人员5人笔试参考题库附答案解析.docx VIP
- 产业园服务体系内容大全.docx VIP
- 安全文化建设评估表.docx VIP
文档评论(0)