吉林大学数据结构课件 第二章 线性表、堆栈和队列.ppt

吉林大学数据结构课件 第二章 线性表、堆栈和队列.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * 2011-10-09 第06次,03周-02次 串课10月7日 * * * * * * * * * * * * * * * * * * * * * * * * * * * * /2011-09-28 第04次,02周-02次 * 2011-09-30 第05次,02周-03次 * * * * * * * * * * * * * * * * * * * * * * * 小结: ● 队列是一种操作受限制的线性表 ● 操作只和队头、队尾有关 ● 队列的特性:先进先出 ● 队列的状态 队列空: count=0 队列满: count=MaxQSize 栈的应用——算术表达式求值 表达式求值是程序设计语言编译中的一个最基本问题。它的实现方法是栈的一个典型的应用实例。 表达式都是由 操作数(operand) 运算符(operator) 界限符(delimiter) 组成的。 其中操作数可以是常数,也可以是变量或常量的标识符;运算符是算术运算符( + , - , * , / );界限符为左右括号和标识表达式结束的结束 算术表达式的表示方法 1. 中缀表达式--运算符在操作数之间 如: A * B / C 运算规则: (1) 先计算括号内,后计算括号外; (2) 在无括号或同层括号内,先进行乘除运算,后进行加减运算,即乘除运算的优先级高于加减运算的优先级; (3) 同一优先级运算,从左向右依次进行。 用计算机来处理中缀表达式比较复杂。一个中缀表达式中有多少个运算符,原则上就得对表达式扫描多少遍,才能完成计算。 在编译系统中,把中缀表达式转换成另外一种表示方法,即后缀表达式,然后对后缀式表达式进行处理,后缀表达式也称为逆波兰式。 2. 后缀表达式: 1929 年,由波兰逻辑学家(Lukasiewicz)提出。 [例] A * B / C; A B * C / ; ● 定义:运算符紧跟在两个操作数之后的表达式叫后缀 表达式。 ● 优点:① 后缀表达式没有括号 ② 不存在优先级的差别 ③ 计算过程完全按照运算符出现的先后次序 进行 中缀表达式 后缀表达式 a+b a b+ a+b*c a b c *+ a*b*c+c*d (a+b)*((c-d)*e+f) a b * c * c d * + a b + c d – e * f + * D 中缀表达式A-(B+C/D)*E的后缀形式是 ( )。 A. AB-C+D/E* B. ABC+D/-E* D. ABCD/+E*- C. ABCD/E*+- 方法: (1)把表达式充分加括号,最后归结为每一个 括号里仅有一种运算; (2)移动运算符使之取代与之对应的右括号; (3)去掉所有括号。 中缀表达式转后缀表达式(堆栈的应用) 首先设定一个运算符栈,用来保存扫描中缀表达式得到的暂不能放入后缀表达式中的运算符。 基本思想:从左到右依次读出中缀表达式中的各个符号(操作数或运算符),每读出一个符号后,根据如下运算规则进行处理: 1. 假如是操作数,将其放入后缀表达式中; 2. 如果是运算符,则: (1) 栈空:运算符放入栈中, (2) 栈不空:比较当前读到的运算符与栈顶运算符的优先级 1)假如读出的运算符的优先级大于栈顶运算符的优先级,则将其压入运算符栈,读中缀表达式的下一个符号。 2)若栈顶运算符的优先级比读到的运算符的优先级高或二者相等,弹出栈顶运算符放入后缀表达式中,当前读到的运算符入栈; 3)遇到“(”,压入堆栈; 4)遇到“)”,把“(”上面的操作符依次弹出加到后缀表达式中,“(”出栈; 3. 假如读出的是表达式结束符“#”,栈中剩余的运算符依次出栈并写入到后缀表达式中,转换完成。 将(A+B)*((C-D)*E+F)转换成后缀表达式,写出操作符栈的变化情况。 (A+B)*((C-D)*E+F) 栈 输出序列 ( A (+

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档