Skip to content

Instantly share code, notes, and snippets.

@pradeepvarma22
Created November 24, 2020 00:30
Show Gist options
  • Select an option

  • Save pradeepvarma22/13f2757b2b2e3c2565b24cba02ffa7c0 to your computer and use it in GitHub Desktop.

Select an option

Save pradeepvarma22/13f2757b2b2e3c2565b24cba02ffa7c0 to your computer and use it in GitHub Desktop.

Revisions

  1. @Nadimpalli22 Nadimpalli22 created this gist Nov 24, 2020.
    64 changes: 64 additions & 0 deletions InfixToPostFix.c
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    #include<stdio.h>
    #include<ctype.h>

    char stack[100];
    int top = -1;

    void push(char x)
    {
    stack[++top] = x;
    }

    char pop()
    {
    if(top == -1)
    return -1;
    else
    return stack[top--];
    }

    int priority(char x)
    {
    if(x == '(')
    return 0;
    if(x == '+' || x == '-')
    return 1;
    if(x == '*' || x == '/')
    return 2;
    return 0;
    }

    int main()
    {
    char exp[100];
    char *e, x;
    printf("Enter the expression : ");
    scanf("%s",exp);
    printf("\n");
    e = exp;

    while(*e != '\0')
    {
    if(isalnum(*e))
    printf("%c ",*e);
    else if(*e == '(')
    push(*e);
    else if(*e == ')')
    {
    while((x = pop()) != '(')
    printf("%c ", x);
    }
    else
    {
    while(priority(stack[top]) >= priority(*e))
    printf("%c ",pop());
    push(*e);
    }
    e++;
    }
    while(top != -1)
    {
    printf("%c ",pop());
    }
    return 0;
    }