标题:[求助]后缀表达式转中缀表达式并求值的c语言版!急啊!!
只看楼主
幸福的旁边
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-8-13
 问题点数:0 回复次数:2 
[求助]后缀表达式转中缀表达式并求值的c语言版!急啊!!
[求助]后缀表达式转中缀表达式并求值的c语言版!急啊!!

马上要用啊 各位前辈帮帮忙啊~~~~
搜索更多相关主题的帖子: c语言 后缀 求值 表达 
2006-08-13 20:36
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

void postfix(char e[],char f[])/*中缀转换成后缀表达式*/
{
int i=0,j=0;
char opst[100];/*栈*/
int top,t;

top=0;/*当前顶指针*/
opst[top]='#';top++;/*将#放在栈底作为运算结束标志*/
while(e[i]!='#')/*核心语句段*/
{
if((e[i]>='0'&&e[i]<='9')||e[i]=='.')
{
f[j++]=e[i];/*遇到数字和小数点直接写入后缀表达式*/
}
else
if(e[i]=='(')/*遇到左括号直接写入操作符栈*/
{
opst[top]=e[i];
top++;
}
else
if(e[i]==')')/*遇到右括号和其对应的左括号后的操作符全部写入后缀表达式*/
{
t=top-1;
while(opst[t]!='(')
{
f[j++]=opst[--top];
t=top-1;
}
top--;/*出栈*/
}
else
if(is_operation(e[i]))
{
f[j++]=' ';
while(priority(opst[top-1])>=priority(e[i]))
{
f[j++]=opst[--top];
}
opst[top]=e[i];
top++;/*当前元素进栈*/
}
i++;/*处理下一个元素*/
}
while(top)
{
f[j++]=opst[--top];
}
}


倚天照海花无数,流水高山心自知。
2006-09-06 16:52
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
反了
不好意思.

倚天照海花无数,流水高山心自知。
2006-09-06 16:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-83771-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.343854 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved