c语言中缀表达式求值算法思想,[求助]后缀表达式转中缀表达式并求值的c语言版!急啊!!...

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];

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值