数据结构第3章new.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第3章new.ppt

【课前思考】 【学习目标】 【重点和难点】 【学习指南】 五、 求解迷宫问题 求迷宫问题就是求出从入口到出口的路径。在求解时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前试探,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续试探,直至所有可能的通路都试探完为止。为了保证在任何位置上都能沿原路退回(称为回溯),需要用一个后进先出的栈来保存从入口到当前位置的路径。 首先用如图3.3所示的方块图表示迷宫。对于图中的每个方块,用空白表示通道,用阴影表示墙。所求路径必须是简单路径,即在求得的路径上不能重复出现同一通道块。 while (栈不空) { 若当前位置可通, 则{ 将当前位置插入栈顶;       // 纳入路径   若该位置是出口位置,则算法结束;   // 此时栈中存放的是一条从入口位置到出口位置的路径   否则切换当前位置的北邻方块为新的当前位置;   } 否则   {   若栈不空且栈顶位置尚有其他方向未被探索,    则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块;   若栈不空但栈顶位置的四周均不可通,    则{ 删去栈顶位置;   // 从路径中删去该通道块      若栈不空,则重新测试新的栈顶位置,      直至找到一个可通的相邻块或出栈至栈空;      }    } } 【本章小结】 { if(!In(c,OP)) { Push(opnd,c); c=getchar(); }  else switch(Precede(GetTop(optr),c)) { case ′′: Push(optr,c);  c=getchar(); break; case ′=′: Pop(optr,x);  c=getchar(); break; case ′′: Pop(optr,theta); Pop(opnd,b); Pop(opnd,a); v=Execute(a,theta,b); /* 对a和b进行op运算 */ Push(opnd,v); break;  } } return (GetTop(opnd)); } 例求表达式1+2*3-4/2的值,栈的变化如下。 步骤 操作数栈 运算符栈 说明 开始 两栈均为空 1 1 1进入操作数栈 +进入运算符栈 2进入操作数栈 *进入运算符栈 3进入操作数栈 退栈 2*3进入操作数栈 退栈 1+6进入操作数栈 2 3 4 5 6 7 8 9 1 + 1 2 + 1 2 + 1 1 1 7 + * 2 3 6 + * + 步骤 操作数栈 运算符栈 说明 10 7 -进入运算符栈 4进入操作数栈 /进入运算符栈 2进入操作数栈 退栈 4/2进入操作数栈 退栈 7-2进入操作数栈 11 12 13 14 15 16 17 7 4 - 7 4 - / 7 4 2 - / 7 7 2 - - - 5 当然,算术表达式除了简单求值外,还会涉及到算术表达式的两种表示方法,即中缀表示法和后缀表示法。中缀表达式求值较麻烦(须考虑运算符的优先级,甚至还要考虑圆括号),而后缀表达式求值较方便(无须考虑运算符的优先级及圆括号)。下面将介绍算术表达式的中缀表示和后缀表示及它们的求值规律, 例如,对于下列各中缀表达式:(1)?????? 3/5+8 (2)?????? 18-9*(4+3) (3)?????? (25+x)*(a*(a+b)+b) 对应的后缀表达式为: (1)3 5 / 8 + (2)18 9 4 3 + * - (3)25 x + a a b + * b + * 4.中缀表达式变成等价的后缀表达式 将中缀表达式变成等价的后缀表达式,表达式中操作数次序不变,运算符次序发生变化,同时去掉了圆括号。转换规则是:设立一个栈,存放运算符,首先栈为空,编译程序从左到右扫描中缀表达式,若遇到操作数,直接输出,并输出一个空格作为两个操作数的分隔符;若遇到运算符,则必须

文档评论(0)

xinshengwencai + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档