📄 infxpost.cpp
字号:
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void push(char ch,int *i);
int pop(char *ch,int *i);
int ol(char ch);
char stack[20];
void main(){
char infix[100];
char *p,*c,o,os;
int indx=-1;
printf("\nEnter the infix statment\n\t:");
scanf("%s",infix);
printf("\nThe postfix statment is:\n\t:");
p=infix;
while(*p!=NULL)
{
if(*p=='(')
push(*p,&indx);
else if(*p==')'){
if(pop(p,&indx) >= 0){
while(*p!='('){
putch(*p);
pop(p,&indx);
}
}
}
else if(*p=='+' || *p=='-'|| *p=='*'|| *p=='/'){
o=ol(*p);
while(1){
if(pop(c,&indx)<0)
break;
os=ol(*c);
if(os>=o)putch(*c);
else {
push(*c,&indx);
break ;
}
}
push(*p,&indx);
}
else if(isalnum(*p)) putch(*p);
p++;
}
while(pop(p,&indx)>=0)
putch(*p);
getch();
}
int ol(char ch)
{
if(ch=='+' || ch=='-')
return 1;
else if(ch=='*' || ch=='/')
return 2;
else
return 0;//if the '('
}
void push(char ch,int *i)
{
++*i;
stack[*i]=ch;
}
int pop(char *ch,int *i)
{
if(*i<0)
return -1;//the stack is empty
else
{
*ch=stack[*i];
--*i;
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -