- 14
- 0
- 约8.53千字
- 约 15页
- 2019-03-27 发布于湖北
- 举报
数据结构(双语)
——项目文档报告
用两种方式实现表达式自动计算
专 业: 计算机科学与技术
班 级: 14接计
指导教师:
姓 名:
学 号:
目 录
一、设计思想……………………………………………………….03
二、算法流程图…………………………………………………….04
三、源代码………………………………………………………….06
四、运行结果……………………………………………………….13
五、遇到的问题及解决…………………………………………….14
六、心得体会……………………………………………………….15
一、设计思想
1.中缀转换后缀:
⑴定义两个栈S1,与S2。S1主要管转换专用,S2主要管计算专用。
⑵扫描字符串,如果是字符或者小数的,直接进栈。
⑶如果是“(”,同直接进栈,直到遇到“)”,为止。
⑷开始处理运算符。
⑸如果栈定的运算符的优先级低于读到的那个,那么就直接进栈,否则把栈里的都进数组里。
⑹运算完,直到读完为止。返回字符数组,后缀表达式就出来了。
⑺然后计算后缀表达。
⑻开始依次扫描数组,如果是数,就进栈,如果是运算符,那么就把栈的数弹出一个,赋值给一个变量,再弹一个赋值一个变量,再进行计算,完后再进栈。
⑼重复过程,直到度完。栈顶元素就是最终结果。
⑽结束。
2.中缀直接计算:
⑴如果获取的操作符a的优先级高于操作符栈栈顶元素b的优先级,则a直接入操作符栈;
⑵如果获取的操作符a的优先级低于操作符栈栈顶元素b的优先级,则b出栈,a进栈,并且取出操作数栈的栈顶元素m,再取出操作数栈新的栈顶元素n,如果b为+,则用n+m,若为减号,则n-m,依此类推,并将所得结果入操作数栈;
⑶如果获取的是“(”,则直接进操作符栈;
⑸如果获取的是“)”,则操作符栈的栈顶元素出栈,做类似于情况2的计算,之后把计算结果入操作数栈,再取操作符栈顶元素,如果不是“(”,则出栈,重复操作,直到操作符栈顶元素为“(”,然后“(”出栈;
⑹当表达式中的所有元素都入栈后,看操作符栈中是否还有元素,如果有,则做类似于情况2 的计算,并将结果存入操作数栈,则操作数栈中最终的栈顶元素就是所要求的结果。
二、算法流程图
1.后缀
2.中缀直接计算
三、源代码
1.后缀表达式
#includestdio.h
#include string.h
#includestdlib.h
#include string
#include stack
#includealgorithm
#include fstream.h
#define MAXN 1000
using namespace std;
stackchar S1; //定义栈S1 ,转换专用
stackdouble S2; //定义栈S2,计算专用
char *tranfExp(char* exp) //变换后缀
{
char tempStr[1000];//保存后缀表达式的字符串
char ch;
int i=0,j=0;
int a=0; //标记表达式是否正确专用
/// int b=0; //标记数字格式是否正确待用
while(exp[i] !=\0)
{
if((exp[i]=0 exp[i]=9)||exp[i]==.) //数字直接进字符串
{
tempStr[j++] = exp[i];
// tempStr[j] = ;
}
else if(exp[i] == ( ) //左括号蹦进栈S1
{
S1.push(exp[i]);
}
else if(exp[i] == ) ) //如果是右括号,就把左括号后面的运算符都进字符串
{
while(S1.empty() == false)
{
tempStr[j++]=S1.top(); //括号里进数组
S1.pop();
您可能关注的文档
- 用VB编写一个简单的图书管理系统.doc
- 用WM_COPYDATA消息来实现两个进程之间传递数据.doc
- 用参数画圆柱直齿轮的ug画法.doc
- 用单摆的周期公式测重力加速度考点.doc
- 用电监察员初级工试题库.doc
- 用电脑连接电视方法.doc
- 用队列模拟病人排队.doc
- 用户登录系统的模拟.doc
- 用户管理模块建模ok.doc
- 用户手册-13住院医生站分系统.doc
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 英语分级阅读:国家地理《Reading Explorer》A1-A2入门级 REF_unit 1A.pdf VIP
- 社区社会工作教学课件 周沛 易艳阳-第1章 社区概述.pptx VIP
- 急性胰腺炎急诊诊治专家共识(2024).pptx VIP
- 2025年AWS认证SavingsPlans在游戏行业中的应用案例专题试卷及解析.pdf VIP
- FDS火灾模拟软件使用教程.pptx VIP
- 2022版《小学数学新课程标准》的解读与梳理PPT课件.pptx VIP
- 制作一:布绒玩具制作.ppt VIP
- 胃潴留的护理.ppt
- 2026广东省佛山市南海公证处公开招聘公证员助理2人笔试参考题库及答案解析.docx VIP
- 解剖关节学课件.ppt VIP
原创力文档

文档评论(0)