Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
19 views

3.Convert an Infix expression to Postfix expression using stack ADT

The document outlines an experiment aimed at converting an infix expression to a postfix expression using a stack data structure in C programming. It explains the definitions of infix and postfix notations and provides a C program that implements the conversion algorithm. The program includes functions for stack operations and evaluates the expression based on operator precedence.

Uploaded by

tuba.khan7575
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

3.Convert an Infix expression to Postfix expression using stack ADT

The document outlines an experiment aimed at converting an infix expression to a postfix expression using a stack data structure in C programming. It explains the definitions of infix and postfix notations and provides a C program that implements the conversion algorithm. The program includes functions for stack operations and evaluates the expression based on operator precedence.

Uploaded by

tuba.khan7575
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

EXPERIMENT No.

3
Aim: Convert an Infix expression to Postfix expression using stack ADT

LO1: Students will be able to implement linear data structures & will be able to handle
operations like insertion, deletion, searching and traversing on them..

Software: ‘C’ Programming

Theory:

Infix expression: The expression of the form “a operator b” (a + b) i.e., when an operator is
in-between every pair of operands.
Postfix expression: The expression of the form “a b operator” (ab+) i.e., When every pair of
operands is followed by an operator.

We can easily solve problems using Infix notation, but it is not possible for the computer to
solve the given expression, so system must convert infix to postfix, to evaluate that
expression.

Program :

Result :

Conclusion :
Program :

#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;
}

Output:

You might also like