逆波兰转换C语言(带注释)
更新时间:2023-12-16 11:15:01 阅读量: 教育文库 文档下载
- c语言逆波兰计算器推荐度:
- 相关推荐
#include
int rank(char a);
void push(char a,struct stack*s); char pop(struct stack *s); void main() { char element; int i=0,j=0; struct stack *s;
////////判断运算符优先级函数
s=(struct stack*)malloc(sizeof(struct stack)); ////////创建一个运算符栈 s->next=NULL; push('@',s); ////////给栈一个起始值 while(s->next->letter!='#') { element=getchar();
////////以‘#’作为输出的结尾
if(element!='#') ////////当输入不为结尾标志时 { if((element>'a'&& element<'z') || (element>'A' && element<'Z'))
////////若输入为字母,则直接输出 printf(\ else if(rank(element)>rank(s->next->letter)) push(element,s); ////////若不为字母,则判断该运算符的优先级 else { while(rank(element)<=rank(s->next->letter) && s->next->letter!='@')
///////输入运算符的优先级高于栈顶运算符的优先级,进栈 { printf(\ ///////若优先级不高于栈顶运算符,则将栈顶弹出,并输出, } ///////直到栈顶运算符的优先级严格小于输入运算符的优先级 push(element,s); ///////或者已经到达栈底,之后将该输入的运算符进栈 }
} else push(element,s); ////////若为输入结尾标志符,直接进栈,跳出while循环 }
while(s->next->letter!='@')
////////将栈中的剩余的运算符全部弹出,并依次输出‘#’和‘@’不输出 { if(s->next->letter!='#') printf(\ else element=pop(s); } }
void push(char a,struct stack*s) { struct stack* temp; temp=(struct stack*)malloc(sizeof(struct stack)); temp->letter=a; temp->next=s->next; s->next=temp; }
char pop(struct stack *s) { struct stack* temp; char a; a=s->next->letter; temp=s->next; s->next=s->next->next; free(temp); return a; }
int rank(char a) { if(a=='+'||a=='-') return 1; else if(a=='*'||a=='/') return 2; else return 4; }
正在阅读:
逆波兰转换C语言(带注释)12-16
关于校园安全的作文02-05
电动汽车驱动系统的仿真分析08-17
未来的垃圾箱作文400字06-29
法律制度有效性条件分析04-30
淄川区技术难题项目需求及人才需求汇编04-30
你是我最感激的人作文500字07-14
少年宫阅读活动实施方案03-10
我的家乡美丽的莆田作文700字06-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 波兰
- 注释
- 转换
- 语言
- 车轮相关标准
- L20爆破测振仪使用说明书 - 图文
- 麻花钻的刃磨 教案 - 图文
- 教师说课讲课听课评课技巧
- 八年级历史上册 第9课 新文化运动导学案(无答案) 新人教版
- 附录IV 本科生习题和思考题汇编
- 输电线路作业 - 图文
- 防治水工作实施细则
- 5六安市红十字会救护员培训理论考试答案
- 人民币离岸业务在港发展分析
- 幼儿园学前班数学测试题
- 中西灾难片比较论
- 高三数学总复习第13讲
- 通达信指标公式源码换手率加MACD双背离
- A银行软件开发项目的沟通识别研究
- 超短线稳健获取暴利的方法 - 图文
- 政府和社会资本合作(PPP)-特色食品产业园区孵化基地项目实施方案(编制大纲) - 图文
- 完整教学常规五环节要求
- 计科教材练习08
- 阅读题训练场