请教 中缀—后缀转换问题 帮忙找一下错误 在此真诚谢过
来源:互联网 发布:中国与大国关系数据库 编辑:程序博客网 时间:2024/05/01 11:46
帮忙看一下面的逻辑有没有错误,只能进行两个操作数的转换,再多一个数的表达式就不行,直接退出了。不知错在哪里,请求高手指教,不胜感激。这是我第一次发帖,用的不是很熟练,代码格式也不好看,请多多见谅。
Stack R; //定义用于暂时储存运算符的栈
R.Push('@'); //'@'结束符,具有最低优先级 0
int i,j;
i=0; //用于指示扫描s1串中字符的位置,初值为 0
j=0; //用于指示扫描s2串中字符的位置,初值为 0
char ch=s1[i];
while(ch!='@')
{
if(ch==' ')
ch=s1[++i];
else if(ch=='(')
{
R.Push(ch); /
ch=s1[i++];
}
else if(ch==')')
{
while(R.Peek()!='(') //读栈顶元素
s2[j++]=R.Pop();
R.Pop();
ch=s1[++i];
}
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/')
{
char w=R.Peek();
while(Precedence(w)>=Precedence(ch))
{ //Precedence(w)函数返回运算符形参优先级
s2[j++]=w,R.Pop;w=R.Peek();
}
R.Push(ch); //把ch 运算符入栈
ch=s1[++i];
}
else {
while(isdigit(ch)||ch=='.')
{
s2[j++]=ch;
ch=s1[++i];
}
s2[j++]=' ';
}
}
ch=R.Pop();
while(ch!='@')
{
if(ch=='(') {
cerr<<"expression error!"<<endl;
exit(1);
}
else {
s2[j++]=ch;
ch=R.Pop();
}
}
s2[j++]='@';
s2[j++]='/0';
}
//求运算符优先级的Precedence 函数
int Precedence(char op)
{
switch(op)
{
case '+':
case '-':return 1;
case '*':
case '/':return 2;
case '(':
case '@':
default:return 0;
}
}
- 请教 中缀—后缀转换问题 帮忙找一下错误 在此真诚谢过
- 个位大虾帮忙看一下,小弟实在太菜了,在此谢过~~~~~~~~
- 请大家帮忙找一下问题啊
- 实验,求高手帮忙做下,小弟在此谢过了啊,大侠帮忙的来啊
- 矩阵运算的GPU加速!!求教各位大神帮忙!在此谢过
- 表达式 中缀 后缀 转换
- 帮忙找错误!
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 这篇文章为了请教大牛帮忙解决一下现网乱码问题
- 括号匹配问题 中缀表达式转换为后缀表达式
- 请教高手刷票器V2.0使用方法,或是懂不断循环ip的软件大大来帮下帮,小弟在此谢过
- 中缀到后缀的转换
- 中缀到后缀的转换
- C++ 后缀转换中缀表达式
- 病毒的原理
- 病毒的重定位技术
- kernel32基地址获得
- 《大话设计模式》之--第2章 商场促销----策略模式
- 父爱如山---写在父亲节
- 请教 中缀—后缀转换问题 帮忙找一下错误 在此真诚谢过
- python-clutter 的动作 BehaviourPath
- 汪博士解读PMP笔记
- web编程中的表单输入框效果
- 数电实验大作业2-实验十一 电子密码锁
- Article cheap jerseys 5 ring finger of injury
- 数电实验大作业1-D触发器制作的同步4位倒计时器
- 分析塑料卡板箱价格未来趋向
- 关于ajax 客户端框架未能加载 sys 未定义的问题