数据结构实验之栈与队列二:一般算术表达式转换成后缀式
来源:互联网 发布:java连接ldap实例 编辑:程序博客网 时间:2024/06/05 11:07
数据结构实验之栈与队列二:一般算术表达式转换成后缀式
Problem Description
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
Input
输入一个算术表达式,以‘#’字符作为结束标志。
Output
输出该表达式转换所得到的后缀式。
Example Input
a*b+(c-d/e)*f#
Example Output
ab*cde/-f*+
#include<stdio.h>#include<stdlib.h>typedef char elemtype;typedef int status;#define MAXSIZE 100#define OVERFLOW -2#define another 50#define true 1#define false 0typedef struct{ elemtype *base; elemtype *top; int stacksize;}Sqstack;/*status isEmpty(Sqstack &S){ if(S.top == S.base) return true; else return false;}*/elemtype getTop(Sqstack &S){ if(S.base == S.top) return false; else return *(S.top-1);}void initStack(Sqstack &S){ S.base = new elemtype[MAXSIZE]; S.top = S.base; S.stacksize = MAXSIZE;}void Push(Sqstack &S, elemtype e){ if(S.top-S.base >= S.stacksize){ S.base = (elemtype *)realloc(S.base,(another+S.stacksize)*sizeof(elemtype)); S.top = S.base + S.stacksize; S.stacksize += another; } *S.top++ = e;}int Pop(Sqstack &S){S.top--;printf("%c",*S.top);return 0;}void LineEdit(Sqstack &S, char str[]){ int i = 0; while(str[i] != '#'){ if(str[i] >= 'a'&&str[i] <= 'z'){ printf("%c",str[i]); } else if(str[i] == '*' || str[i] == '/'){ Push(S,str[i]); } else if(str[i] == '+' || str[i] == '-'){ if(*(S.top-1) == '*' || *(S.top-1)== '/'|| *(S.top-1)== '+' || *(S.top-1) == '-'){ Pop(S); } Push(S,str[i]); } else if(str[i]=='('){ Push(S,str[i]); } else if(str[i]==')'){ while(*(S.top-1)!='('){ Pop(S); } S.top--; } i++; } while(S.base!=S.top){ Pop(S); } printf("\n");}int main(){ Sqstack S; initStack(S); char string[123]; scanf("%s",string); LineEdit(S, string); return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式 sdut-oj
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2132 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2132-数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 单步执行命令step into/step out/step over
- spring boot logback 配置
- [RK3288][Android6.0] 调试笔记 --- 命令行播放音乐方法
- 分区工具parted的详解及常用分区使用方法
- C++ 文件相关操作(持续更新)
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- C#判断文件是否被混淆
- 第一次的死
- 关于swing中嵌入html页面以及获取绝对路径
- EasyUI DataGrid 隐藏其中一列
- 字符流中第一个不重复的字符
- go语言心跳响应
- MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤
- 做人、作诗