栈和队列的存储结构实验报告
更新时间:2024-06-14 08:44:01 阅读量: 综合文库 文档下载
实验报告
课程名称:数据结构与算法分析 实验名称:后缀表达式的计算
实验日期 3.20 班级: 数媒1401 姓名: 范业嘉 学号 1030514108
一、实验目的
熟练掌握栈和队列的存储结构设计及基本操作的实现;学会分析实际问题中具有栈特点的数据结构;
了解表达式的前缀、中缀、后缀等计算机内表示形式。
二、实验内容与要求
按常规形式输入算术表达式(例如:输入2*(6-4)+8/4),要求能够: ⑴生成表达式的后缀表示,并输出;
⑵基于表达式的后缀表示,对该表达式求值; ⑶编写一个主程序对表达式求值函数进行测试;
三、数据结构设计
顺序栈
#define MAXSIZE 100 typedef struct {
ElemType elem[MAXSIZE]; int length; }SqStack; SqStack S; 此外还有链栈 Typefef struct{ Float /char data; Float/char *next; }sqstack;
四、算法设计
1.表达式求值基本操作
(1)表达式起始符#入运算符栈; ⑵读表达式中字符;
⑶若当前字符为#,且运算符栈中栈顶元素也是#,则表达 式计算结束,返回运算结果,否则执行⑷;
⑷若当前字符不是运算符,则入运算数栈,并读下一字符; 否则与运算符栈中栈顶元素进行优先级比较:
*栈顶优先级低
当前运算符入栈,并读下一字符;
*两者优先级同
必为左右括号相遇,令栈顶元素出栈,读下一字符;
*栈顶优先级高
完成栈顶运算,结果入运算数栈;
1 / 2
⑸反复执行⑶、⑷,直至计算完成。
2.前缀表达式的计算
(1) 初始化两个栈:运算符栈S1和储存中间结果的栈S2; (2) 从右至左扫描中缀表达式; (3) 遇到操作数时,将其压入S2;
(4) 遇到运算符时,比较其与S1栈顶运算符的优先级:
*如果S1为空,或栈顶运算符为右括号“)”,则直接将此运算符入S1; *否则,若优先级比栈顶运算符的较高或相等,也将运算符压入S1;
*否则,将S1栈顶的运算符弹出并压入到S2中,再次转到①与S1中新的栈顶运算符相比较;
(5) 遇到括号时:
*如果是右括号“)”,则直接压入S1; *如果是左括号“(”,则依次弹出S1栈顶的运算符,并压入S2,直到遇到右括号为止,此时将这一对括号丢弃;
(6) 重复步骤2至5,直到表达式的最左边; (7) 将S1中剩余的运算符依次弹出并压入S2;
(8) 依次弹出S2中的元素并输出,结果即为中缀表达式对应的前缀表达式。
五.测试结果
六、心得体会(包括对于本次实验的小结,实验过程中碰到的问题等)
1.刚开始对怎么进行运算符优先级的比较是一点头绪也没有的,后来到网上查了一下资料,看的似懂非懂的就把它copy下来了,虽然程序勉勉强强写出来了,但是关于运算符优先级这块儿,我还是希望老师上课能再讲一讲。
2.写了几次数据结构的作业,也有一点收获,比如接触一个新的结构时,其基本操作可以写的比较顺手。 3.数据结构写不好确实可能是c语言没有学好,可是上学期末因为课时紧,所以c语言后来指针并没有学完,更别说结构体和链表了,现在c++老师还没有讲到这块儿,所以都是靠我们自学在写数据结构,我希望老师上课的时候多讲讲程序代码,课件上也可以有一些。
2 / 2
正在阅读:
栈和队列的存储结构实验报告06-14
公司-年度工作总结会议主持词08-07
电力实业有限公司业扩工程施工组织设计方案2018年修订版 - 图文12-31
第六章 方差分析与正交试验设计08-10
一个美丽的地方作文02-04
2016年郑州大学435保险专业基础之微观经济学考研冲刺模拟题及答案08-28
石栏杆自身连接安装施工工法06-06
阜阳市教育局关于开展首批和第二批学科带头人骨干教师考核07-11
火焰喷涂08-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 队列
- 存储
- 结构
- 实验
- 报告
- 心理学对我成长的启发
- 2014高考生物一轮复习04 细胞的生命历程
- 2015年浙商银行笔试真题资料汇总
- 幼儿园小课题开题报告
- 原码,反码,补码及运算
- 环保法自考重点 - 图文
- 2018年公司考勤制度word版本(8页)
- 光源跟踪随动系统设计 yangzhen - 图文
- 脱硫吸收塔防火措施
- 平台系统介绍 - 图文
- 把手柄上面的摇杆像普通按键一样从上往下按下去
- 上海市浦东新区川沙中学2018-2019学年高一上学期期中数学试卷 Wo
- 2010论文撰写基本规范
- 第十二节 导数在研究函数中的应用与生活中的优化问题举例
- 道路地磁泊车位施工方案
- 2009年吴中区政 府 工 作 报 告
- 国家文物局(90)文物字第248号
- 基因突变与基因重组
- 增强争先创优意识
- 六年级科学总复习习题