资源简介
使用c语言实现,将给定的运算表达式翻译成逆波兰表达式的形式
代码片段和文件信息
#include
#include
char phrase[199]sign[100]num[100][100]tmp[100];
int ns_topn_top;
int main()
{
freopen(“data.txt““r“stdin);
int ij;
gets(phrase);
strcat(phrase“)“);
n=strlen(phrase);
n_top=s_top=0;
sign[s_top]=‘(‘;
for(i=0;i if(phrase[i]>=‘0‘&&phrase[i]<=‘9‘){
for(j=i;j=‘0‘&&phrase[j]<=‘9‘;j++)
tmp[j-i]=phrase[j];
tmp[j-i]=‘\0‘;
strcat(num[n_top++]tmp);
i=j-1;
}
else if(phrase[i]==‘*‘||phrase[i]==‘/‘){
while(sign[s_top]==‘*‘||sign[s_top]==‘/‘){
num[n_top][0]=sign[s_top--];
num[n_top++][1]=‘\0‘;
}
sign[++s_top]=phrase[i];
}
else if(phrase[i]==‘+‘||phrase[i]==‘-‘){
while(sign[s_top]!=‘(‘){
num[n_top][0]=sign[s_top--];
num[n_top++][1]=‘\0‘;
}
sign[++s_top]=phrase[i];
}
else if(phrase[i]==‘(‘){
sign[++s_top]=phrase[i];
}
else{
while(sign[s_top]!=‘(‘){
num[n_top][0]=sign[s_top--];
num[n_top++][1]=‘\0‘;
}
s_top--;
}
}
for(i=0;i printf(“%s “num[i]);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16 2009-12-21 15:20 data.txt
文件 1394 2009-12-21 15:55 main.cpp
----------- --------- ---------- ----- ----
1410 2
相关资源
- 中缀表达式转后缀表达式的C++代码
- 编译原理实验 DFA的最小化 c++代码
- 编译原理课程设计广工C语言
- 编译原理课程设计——算术表达式、
- 广工编译原理课程设计 PL0C++改进需用
- 0513《编译原理》答案 设计并实现TI
- 编译原理firstselectfollow实验源代码
- 编译原理实验判断文法是不是LL1文法
- 编译原理Pascal语言编译器用C实现
- 编译原理PL0实验报告
- c++用栈实现四则运算
- 编译原理正则表达式转NFA转DFA DFA最小
- C语言之逆波兰表达式完整代码(附算
- 编译原理虎书课后习题解答
- 东北大学课程设计—编译原理课程设
- 编译原理-简单编译器课程设计C语言源
- 逆波兰式生成程序
- 将逆波兰式转换成波兰式表达式
- PL/0编译程序文本(C版本)
- 编译原理 压缩文法等价变换
- 编译原理 电梯程序
- 编译原理C++实现判断LL1文法
- 编译原理课程设计——目标代码生成
- 编译原理课程设计(PASCAL)
- 编译原理实验之四元式的生成源代码
- 北邮编译原理实验--词法分析
- 编译原理 PASCAL编译器
- 编译原理语法分析、词法分析源代码
- 编译原理之NULL集、first、follow集C语言
- 编译原理(龙书中英版)第二版 中文
评论
共有 条评论