⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infxpost.cpp

📁 programm that convert infix term to postfix
💻 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 + -