infxpost.cpp
来自「programm that convert infix term to post」· C++ 代码 · 共 74 行
CPP
74 行
#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 + =
减小字号Ctrl + -
显示快捷键?