实验二___栈与队列的一个应用.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二___栈与队列的一个应用实验二___栈与队列的一个应用

中国计量学院实验报告 实验课程:《算法与数据结构》 实验名称:栈与队列的一个应用 班 级: 14计算机1 实验日期: 实验角色 Document Writer Programmer Tester 学号 1400303107 1400303105 140303111 姓名 张峰 朱沈辉 李佳骏 实验成绩 实验目的及要求: 一、 实验目的 1、了解栈和队列的特性 2.?掌握栈和队列的顺序表示及实现 3.?掌握栈和队列的链式表示及实现 4、学会利用栈或队列去求解实际问题 二、 实验要求 从键盘输入包括任意三种括号(即,圆括号()、方括号[]和花括号{})的四则运算(+、-、*、/)表达式,编程判断该表达式的括号是否匹配。若匹配则计算出表达式的值;若不匹配,则输出“此表达式括号不匹配”。 实验中,假设: (1) 除括号不匹配外,不存在其它非法表达式的情况 (2) 表达式中只出现数值常量,不出现变量或符号常量 三、实验角色 1、Document Writer: ADT设计及实验所涉资料的整理、录入及排版 2、Programmer: 算法设计及实现 3、Tester: 确定测试用例并负责程序测试,测试用例不少于15种 数据结构及关键算法说明 这一部分描述解决问题所用到的数据结构及关键算法,可用伪代码、代码或框图表示,目的是让读者在短时间内清楚地理解作者解决问题的整体思路。因此,表达方式必须比源代码更通俗易懂。 typedef struct SqStack //栈的顺序存储结构 { SElemType *base; SElemType *top; int stacksize; }SqStack; char Precede(char a1 ,char a2)//判定运算符的优先级。 { char r; switch(a2) { case+: //此处由于加减几乎优先级一样,故放在一起 case-: if(a1==(||a1==[||a1=={||a1==#) r=; else r=; break; case(: if(a1==)) { cout括号匹配错误!endl; exit(-1); } else r=; break; }//这里只列举加减,左括号。其他类似。 bool In(char d)//判断c是否为十一种运算符之一 { switch(d) { case+: case-: return true; default: return false; } } SElemType EvaluateExpression() //算符表达式的优先算法。设OPTR和OPND分别为运算符栈和运算数栈 { while(c!=#||e!=#)//栈顶不是#号且输入不是#号 { if(In(c))//是符号则进栈 { switch(Precede(e,c)) { case: //栈顶元素优先级低 Push(OPTR,c); c=getchar(); break; case=: //脱括号并接受下一字符 Pop(OPTR,e); c=getchar(); break; case: //退栈并将运算结果入栈 Pop(OPTR,e); Pop(OPND,b); Pop(OPND,a); Push(OPND,Operate(a,e,b)); break; } } 测试用例表 紧扣实验要求,设计(并填写)一张测试用例表。每个测试用例一般应包括下列内容: 测试输入:设计一组输入数据; 测试目的:设计该输入的目的在于测试程序在哪方面可能存在漏洞; 预期输出:若程序正确,应该输出的结果; 实际输出:程序运行后,实际得到的输出结果; 错误原因:如果实际输出与预期输出不符,给出产生错误的可能原因; 当前状态: “通过” 或者“待修改” 两种状态之一。 【注意】测试时,不是提供简单的几组数据让程序容易通过,从而宣称该程序是正确的,而是精心设计“刁难”的数据,尽可能让程序暴露问题,这样才能真正帮助程序员完成正确的程序。 测试输入 预期输出 实际输出 错误原因 当前状态 (1+2*[1-2)/4]# error!括号匹配错误 error!括号匹配错误 通过 1+{2

文档评论(0)

skewguj + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档