Advertisement
Arnab_Manna

postfix2infix

Dec 22nd, 2022
897
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5.  
  6. char S[50][100],res[100];
  7. int top=-1;
  8.  
  9. void push(char *c)
  10. {
  11.     strcpy(S[++top],c);
  12. }
  13.  
  14. void pop()
  15. {
  16.     strcpy(res,S[top--]);
  17. }
  18. void clear(char *c)
  19. {
  20.     int i,j=strlen(c);
  21.     for(i=0; i<j;i++)
  22.     {
  23.         c[i]='\0';
  24.     }
  25. }
  26.  
  27. int main()
  28. {
  29.     char exp[100],temp[100],b1[]="(",b2[]=")",op1[100],op2[100];
  30.     char ptr[100];
  31.     clear(ptr);
  32.     int i;
  33.     puts("enter sting 1:");
  34.     gets(exp);
  35.    
  36.     int j=strlen(exp);
  37.    
  38.     for(i=0; i<j;i++)
  39.     {
  40.         if(isalnum(exp[i]))
  41.         {
  42.             temp[0]=exp[i];
  43.             push(temp);
  44.         }
  45.         else
  46.         {
  47.             pop();strcpy(op2,res);
  48.             pop();strcpy(op1,res);
  49.             temp[0]=exp[i];
  50.             strcat(ptr,b1);
  51.             strcat(ptr,op1);
  52.             strcat(ptr,temp);
  53.             strcat(ptr,op2);
  54.             strcat(ptr,b2);
  55.            
  56.             push(ptr);
  57.             clear(ptr);
  58.         }
  59.     }
  60.     pop();
  61.     puts("the converted infix is :");
  62.     puts(res);
  63.  
  64.  
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement