用C++生成后缀表达式转前缀表达式的程序
时间: 2023-06-07 19:09:46 浏览: 116
好的,我可以回答这个问题。以下是用C语言编写的将后缀表达式转换为前缀表达式的程序:
```c
#include<stdio.h>
#include<string.h>
#define MAX 50
char stack[MAX][MAX];
int top=-1;
void push(char item[]){ //push function
top++;
strcpy(stack[top],item);
}
char *pop(){ //pop function
return (stack[top--]);
}
void prefix(char exp[]){ //main function to convert postfix to prefix
int i,op1,op2;
char ch[2],op[MAX];
for(i=strlen(exp)-1;i>=0;i--){
if(exp[i]>='0'&&exp[i]<='9'||exp[i]>='A'&&exp[i]<='Z'||exp[i]>='a'&&exp[i]<='z'){ //if operand, push into stack
ch[0]=exp[i];
ch[1]='\0';
push(ch);
}
else{ //if operator, pop two operands and create a new string
char *op1=pop();
char *op2=pop();
op[0]=exp[i];
op[1]='\0';
char temp[MAX];
strcpy(temp,op);
strcat(temp,op2);
strcat(temp,op1);
push(temp); //push the new string back into the stack
}
}
printf("Prefix Expression: %s",stack[top]); //print the final prefix expression
}
int main(){
char exp[MAX];
printf("Enter Postfix Expression: ");
scanf("%s",&exp); //input the postfix expression
prefix(exp);
return 0;
}
```
希望这个程序能够解决你的问题!
阅读全文