- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6-7讲栈和队列
栈 栈的应用 队列 优先级队列 STACK(堆栈) 栈 ( Stack ) 只允许在一端插入和删除的线性表 允许插入和删除 的一端称为栈顶 (top),另一端称 为栈底(bottom) 特点 后进先出 (LIFO) Stacks A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end,called the top of the stack. Stacks are a special form of collectionwith LIFO semantics 栈的操作 栈的数组存储表示 — 顺序栈 栈的存储结构 顺序栈 实现:一维数组s[MAX] 栈的数组存储表示 — 顺序栈 栈的链接存储表示 — 链式栈 链式栈无栈满问题,空间可扩充 插入与删除仅在栈顶处执行 链式栈的栈顶在链头 适合于多栈操作 Quiz 一个栈的入栈序列是(a,b,c,d,e),不可能得到的输出序列有 ( ) A.edcba? B.decba? C.dceab? D.abcde 栈的应用举例 数值转换 括号匹配的检验 行编辑程序 迷宫求解 表达式求解 数值转换 原理: N=(N div d)*d+N mod d 括号匹配的检验 status clarity(Sqlist L) { initstack(S);i=0; while (ilistlength(L) { GetElem(L,i,e); switch (e) { case ‘(’: case ‘[’: push(S,e); break; case ‘)’: if (!compare( gettop(S),’(‘)) pop(S); break; else return ERROR: case ‘]’: if (!compare( gettop(S),’[‘)) pop(S); break; else return ERROR: } } if (StackEmpty) return OK; else return ERROR; } 迷宫求解 迷宫求解 迷宫求解 表达式求值 一个表达式由操作数(亦称运算对象)、操作符 (亦称运算符) 和分界符组成。 算术表达式有三种表示: 中缀(infix)表示 操作数 操作符 操作数,如 A+B; 前缀(prefix)表示 操作符 操作数 操作数,如 +AB; 后缀(postfix)表示 操作数 操作数 操作符,如 AB+; 表达式事例 中缀表达式 a + b * ( c - d ) - e / f 后缀表达式 a b c d - * + e f / - 表达式中相邻两个操作符的计算次序为: 优先级高的先计算; 优先级相同的自左向右计算; 当使用括号时从最内层括号开始计算。 一般表达式的操作符有4种类型: 算术操作符 如双目操作符(+、-、*、/ 和%)以及单目操作符(-)。 关系操作符 包括、=、==、!=、=、。这些操作符主要用于比较。 逻辑操作符 如与()、或(||)、非(!)。 括号‘(’和‘)’ 它们的作用是改变运算顺序。 通过后缀表示计算表达式值的过程 顺序扫描表达式的每一项,根据它的类型做如下相应操作: 若该项是操作数,则将其压栈; 若该项是操作符op,则连续从栈中退出两个操作数Y和X,形成运算指令XopY,并将计算结果重新压栈。 当表达式的所有项都扫描并处理完后,栈顶存放的就是最后的计算结果。 利用栈将中缀表示转换为后缀表示 使用栈可将表达式的中缀表示转换成它的前缀表示和后缀表示。 为了实现这种转换,需要考虑各操作符的优先级。 各个算术操作符的优先级 isp叫做栈内(in stack priority)优先数 icp叫做栈外(in coming priority)优先数。 操作符优先数相等的情况只出现在括号配对或栈底的“;”号与输入流最后的“;”号配对时。 中缀表达式转换为后缀表达式的算法 操作
您可能关注的文档
- 浅谈师德修养与教书育人.doc
- 压力传感器实验台采购项目.doc
- 探索政信合作的全新路径.doc
- 经济学考试重点、答案.doc
- 微分方程课程讲座.ppt
- 东郊中学体育、艺术21项目实施方案.doc
- 2011-12 APC Final 2010182019 梁斯迪.doc
- Java基础面试(Ver1.0).doc
- 导电胶MSDS.pdf
- 微观经济学第5章+成本理论1.ppt
- 2024反思-洞察-预见:人工智能在金融犯罪合规中的应用常见问题解答指南 英文版.pdf
- 粤20J 010-2 装配式混凝土结构保障性住房、人才房装修施工图案例.pdf
- LLMAll_zh-CN信息安全资料.pdf
- 2025区块链游戏与AI的融合如何重塑加密生态系统研究报告 英文版.pdf
- 冯绪-TRAE 在 Agent 代码编辑的实践.pdf
- SpyCloud:2024年恶意软件与勒索软件防御报告 英文版.pdf
- T_HNKCSJ 024-2025 刚节点装配式混凝土框架结构施工图制图规则及构造详图(25HNTJ025).docx
- 链上洗钱与反洗钱.pdf
- 2025中国PaaS市场研究报告.pdf
- 《数据分类分级实践指南2.0》.pdf
原创力文档


文档评论(0)