- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
验目的及要
验
目的及要
求
掌握栈的特点及其存储方法;
掌握栈的常见算法以及程序实现;
了解递归的工作过程。
《算法与数据结构》实验报告(三)
专业班级
2013网络工程01
实验地点
423机房
学生学号
1305120411
指导教师
赵卿松
学生姓名
何彬
实验时间
2015-4-24
实验项目实验类别
基础性(√)
栈的应用
设计性()综合性()
其它()
实
成绩评定表
成绩评定表
类
别
评分标准
分值
得分
合 计
积极出勤、遵守纪律
上机表现
30分
按要求完成设计任务
程序代码规范、功能正确
程序与报告
70分
报告详实完整、体现收获
说明:
计算机科学与工程学院
计算机科学与工程学院
PAGE3
PAGE3
《算法与数据结构》实验报告
评阅教师:
评阅教师:
赵卿松
日期:2015年 4 月 25
日
实验内容
实验内容:表达式求值问题。
这里限定的表达式求值问题是:用户输入一个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法数学表达式,计算该表达式的运算结果。
算术表达式求值过程是:STEP1:先将算术表达式转换成后缀表达式。
STEP2:然后对该后缀表达式求值。实验说明:在设计相关算法中用到栈,这里采用顺序栈存储结构。
中缀表达式exp==》后缀表达式postexp伪代码如下:
初始化运算符栈op;将=进栈;
从exp读取字符ch;while(ch!=\0)
{ if(ch不为运算符)
将后续的所有数字均依次存放到postexp中,并以字符#标志数值串结束;else
switch(Precede(op栈顶运算符,ch))
{
case: //栈顶运算符优先级低
将ch进栈; 从exp读取下字符ch; break;
case=: //只有栈顶运算符为(,ch为)的情况退栈;从exp读取下字符ch;break;
case: //栈顶运算符应先执行,所以出栈并存放到postexp中退栈运算符并将其存放到postexp中;break;
}
}
若字符串exp扫描完毕,则将运算符栈op中=之前的所有运算符依次出栈并存放到postexp中。最后得到后缀表达式postexp;
对后缀表达式postexp求值伪代码如下:
while(从postexp读取字符ch,ch!=\0)
{ 若ch为数字,将后续的所有数字构成一个整数存放到数值栈st中。若ch为“+”,则从数值栈st中退栈两个运算数,相加后进栈st中。若ch为“-”,则从数值栈st中退栈两个运算数,相减后进栈st中。若ch为“*”,则从数值栈st中退栈两个运算数,相乘后进栈st中。
若ch为“/”,则从数值栈st中退栈两个运算数,相除后进栈st中(若除数为零,则提示相应的错误信息)。}
若字符串postexp扫描完毕,则数值栈op中的栈顶元素就是表达式的值。
实验内容
#includestdio.h#includestdlib.h#definemaxsize100
//中缀表达式str转换为后缀表达式expvoidtrans(charstr[],charexp[])
{
struct
{
chardata[maxsize];inttop;
}op;charch;
inti=0,t=0;op.top=-1;ch=str[i];i++;
while(ch!=\0)
{
switch(ch)
{
case(:
op.top++;op.data[op.top]=ch;break;
case):
while(op.data[op.top]!=()
{
exp[t]=op.data[op.top];op.top--;
t++;
}
op.top--;break;
case+:
case-:while(op.top!=-1op.data[op.top]!=()
{
exp[t]=op.data[op.top];op.top--;
t++;
}
op.top++;
op.data[op.top]=ch;break;
case*:
case/:
while(op.data[op.top]==*||op.data[op.top]==/)
{
exp[t]=op.data[op.top];op.top--;
t++;
}
op.top++;op.data[op.top]=ch;break;
case:
break;default:
while(ch=0ch=9)
{
exp[t]=ch;t++;
ch=str[i];i++;
}
i--
您可能关注的文档
- 20202020学年小学一年级数学上册期末测试卷.docx
- 20202020学年小学一年级下册语文期末试卷.docx
- 20202021江苏南京八上秦淮外国语第一次月考真题.docx
- 20202021年度上学期 扬州市江都区实验初级中学八年级上英语第一次月考.docx
- 20202021年高中物理第一章动量守恒定律1动量练习含解析新人教版选择性必修第一册.docx
- 20202021少先队工作总结.docx
- 20202021学年11月9日江苏省南京市鼓楼区九上期中化学试卷 .docx
- 20202021学年初中化学鲁教版九年级上册同步实验室净化天然水.docx
- 20202021学年第一学期初三10月份月考英语试卷含答案.docx
- 20202021学年第一学期江苏省泰州中学附属初中九年级数学期中试卷.docx
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
最近下载
- 2024年(新高考2卷)数学第19题 教师比赛说课课件.pptx
- 广州市中考:2024年-2022年《语文》考试真题与参考答案.pdf
- 带头增强党性、严守纪律、砥砺作风等四个方面存在问题及整改材料.docx VIP
- 《保护眼睛》大班教案.pdf VIP
- 2022年皖北卫生职业学院单招综合素质题库及答案解析.docx
- 2022年高考真题——英语(全国乙卷).pdf VIP
- 摄影入门课件课件.pptx
- 2025年单招职业技能测试试卷(二).pdf VIP
- 2024廊坊市广阳区爱民东道街道社区工作者招聘考试真题题库及答案.docx VIP
- 《新能源汽车技术》课件——第二章 动力电池.pptx VIP
文档评论(0)