- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元实验三
题目 后缀表达式求值(栈的应用) 题目 后缀表达式求值 题目 后缀表达式求值 题目 表达式中的括号匹配问题 题目 离散事件模拟 题目 离散事件模拟 程序设计风格问题 注释 程序模块化(函数功能单一,代码长度适当) 命名规范 使用空行区分不同功能代码 缩进 西安电子科技大学软件学院 - School of Computer Software, Xidian University, China * 单元实验三 ------栈和队列 离散事件模拟(队列的应用) *括号匹配问题(栈的应用) 表达式的三种表示方法 设 S1 与 S2 进行 OP 运算 则 OP S1 S2 为前缀表示法(波兰表示法) S1 OP S2 为中缀表示法 S1 S2 OP 为后缀表示法(逆波兰表示法) 例如,表达式 a + b * (c – d) – e / f 的后缀式为 a b c d – * + e f / – a b c d – * + e f / – b a c d b a t1 t2 a t1 = c – d t2 = b * t1 t3 = a + t2 t3 e t3 f t4 = e / f t4 t3 t5 t5 = t3 – t4 – – * + / 使用栈,用于保存操作数和计算结果 难点:表达式以字符串方式表示,需要从字符串中分解出每个操作数和运算符。 思路:字符串中的空格分隔了操作数和运算符,因此,从左至右扫描字符串,遇到空格时暂停,取出操作数(从串转换为数)或运算符(一个字符),若是操作数则入栈,若是运算符,则从栈顶弹出操作数进行相应的运算,结果再入栈;重复以上过程,直到表达式结束。 使用栈,用于保存左括号({,[,() 思路:自左至右扫描表达式,若遇左括号,则将左括号入栈,若遇右括号,则将其与栈顶的左括号进行匹配,若配对,则栈顶的左括号出栈,否则出现括号不匹配错误。 程序运行时,对输入的每个表达式,判断其括号匹配情况。若其中的括号是匹配的,则输出“yes”,否则输出“no”。 使用队列,模拟银行的服务窗口 场景设定:三个窗口,因此需要模拟客户排队的三个队列;再加一个事件队列,按时间顺序存放发生的事件:某客户来了,某客户离开某服务窗口了。具体表示为:新客户到达,一号窗口客户离开,二号窗口客户离开,三号窗口客户离开。 思路:由于是模拟,所以事件队列中的数据用伪随机函数产生。第一个事件产生的时刻为0,显然应该是客户到达事件。后面的客户什么时候来呢?由上个客户到达时产生的随机数表示。 思路:由于是模拟,所以事件队列中的数据用伪随机函数产生。第一个事件产生的时刻为0,显然应该是客户到达事件。后面的客户什么时候来呢?由上个客户到达时产生的随机数表示。 因此,在客户到达事件发生时产生两个随机数;一为该时刻到达的客户办理业务所需要的时间durtime;二为下一客户将要到达的时间间隔interval,假设当前事件的发生时刻为occurTime,则下一个客户到达事件发生的时刻为occurTime+interval。由此应产生一个新的客户到达事件。刚到达的客户则应插入到长度最短的队列中;若该队列在插入前为空,则还应产生一个客户离开事件。 没有 否 是 有 否(客户离开事件) 是 初始化:客户数count=0,客户逗留时间总和totaltime=0,银行开门营业(occurtime=0),银行关门时间(endtime=*****) 有一客户到达(arrivetime=0),在事件表中插入一个事件,三个服务窗口置空队列。 事件表中有事件吗? 取出事件表的第一个事件 是客户到达事件吗? 用随机函数产生当前客户办理业务所需时间durtime和下一个客户将要到达的时间间隔interval 下一客户到达时银行关门了吗? 在事件表中插入一个客户到达事件,客户数count加1 将当前客户加在人数最少的队列尾部。若当前客户为其所在队列的唯一客户,则其离开时间可确定(occurtime+durtime),因此在事件表中加入一个客户离开事件。 结束 计算并将客户的逗留时间加入totaltime,若当前窗口还有客户,则正在办理业务的第一个客户离开时间可确定(occurtime+办理业务时间),因此在事件表中加入一个客户离开事件。 开始 离散事件模拟流程图 事件表的元素按时间排序 西安电子科技大学软件学院 - School of Computer Software, Xidian University, China
您可能关注的文档
最近下载
- 2023税务局大比武数字人事“两测”练习专业能力-行政管理考试题库及答案.pdf
- 2023北京北师大二附中高一(上)期中化学试卷含答案.docx
- 小学数学拓展提高(行程问题——追及问题)精选应用题30个.doc
- 《原子的结构》说课稿.docx VIP
- 2024-2028年2024-2029年中国高蛋白饲料行业供需趋势及投资风险研究报告.docx
- 成都城投集团笔试题目.pdf
- 2022高三联考作文“择一事,终一生”精准审题指导素材及优秀范文四篇.docx
- 最新班主任艺术:做一个幸福的班主任(共50张PPT).ppt
- 《控制图+第3部分:验收控制图GBT+17989.3-2020》详细解读.pdf
- 人教版八年级物理上册全册大单元教学解读课件.ppt
文档评论(0)