博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1237 简单计算器 栈
阅读量:4984 次
发布时间:2019-06-12

本文共 1036 字,大约阅读时间需要 3 分钟。

这个题目是大部分人都是用栈来写的,本周训练老师也讲了两次栈的原理。自己最近也看了数据结构中与栈有关的内容,还是比较深刻理解了没有括号情况下表达式求解。

#include
#include
#include
using namespace std;char s[250],post[250];//s是输入的中缀表达式,post是转化出来的后缀表达式stack
op;//存放运算符stack
num;//存放运算过程中的数字int isnum(char c)//判断字符是否为数字{ if(c>='0'&&c<='9') return 1; return 0;}double opmode(char c)//运算符优先级判定{ if(c=='+') return 1; if(c=='-') return 2; if(c=='*') return 3; if(c=='/') return 4; return -1;}void change()//将中缀表达式转化为后缀表达式{ int i,j=0,len; memset(post,0,sizeof(post)); len=strlen(s); for(i=0; i
2)//栈顶运算符是*/时,才将栈顶的输出 { post[j++]=op.top(); op.pop(); } } op.push(s[i]);//优先级大时或者上面操作后将当前运算符入栈 } } while(!op.empty())//对象处理完毕将栈中存留的运算符一并输出 { post[j++]=op.top(); op.pop(); }}double cal()//计算后缀表达式{ while(!num.empty()) num.pop();//清空栈 int i=0,len; len=strlen(post); for(i=0;i

版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

转载于:https://www.cnblogs.com/xryz/p/4848061.html

你可能感兴趣的文章
四则运算*2
查看>>
《Linux就该这么学》 - 必读的红帽系统与红帽linux认证自学手册
查看>>
名句名篇
查看>>
图像的基本运算——scale, rotation, translation
查看>>
OpenCV——PS滤镜, 碎片特效
查看>>
python-字典相关函数认识
查看>>
Java之IO流
查看>>
Lua学习笔记-C API
查看>>
浅析:Android 嵌套滑动机制(NestedScrolling)
查看>>
Python+Selenium练习篇之18-获取元素上面的文字
查看>>
php状态模式
查看>>
Asp.net C# 图像处理
查看>>
知识签名(signature of knowledge)
查看>>
Gedit 解决中文显示乱码问题
查看>>
reset 单个文件 回退
查看>>
数据库系统
查看>>
ASP.NET Core 基础知识(九)Configuration
查看>>
pickle使用
查看>>
将多个网页制作成一个CHM文件
查看>>
txt 文件改名为fasta,并编辑规格格式
查看>>