资源简介
使用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语言编译器
- 编译原理实验-词法分析(c语言代码)
- 北邮-编译原理-词法分析
- 现代编译原理-C语言描述
- 编译原理实验报告+代码+使用说明
- 编译原理课程设计-C语言子集编译器
- 赋值语句翻译c语言实现四元式
- 编译原理用C++消除左递归
- 编译原理简易C编译器
- 实现语法分析器-编译原理
- 编译原理 LR分析器 c++代码
- 设计并实现TINYC语言的扫描程序TINYC
- LL(1)文法分析全过程(FIRST/FLLOW/S
- 编译原理 LR0项目集规范族的构造 L
- 山东大学编译原理实验源代码c++版
- 简单函数绘图语言的解释器
- Lex和Yacc从入门到精通.pdf
- 简易词法分析器——基于C语言
- LL(1)文法的实现-mfc-编译原理学习
- MFC基于逆波兰算法的四则运算计算器
- 词法分析代码内有报告
- 编译原理LL1文法的mfc实现含消除左递
- 编译原理词法分析实验
- pl/0语言的编译器
- C++实现编译原理自动机、LL1文法、及
- 编译原理语义分析程序 c++实现
- 编译原理 课程设计 DAG 报告+源码C++版
- 编译原理课程设计----语法分析器(
- 编译原理简单的编译器源码
- C语言实现一个编译器-编译原理南开大
评论
共有 条评论