Computer Science, asked by harjas2141, 8 months ago

write a program in c++ to evaluate postfix expression using stack

Answers

Answered by jahanviparihar14
0

Answer:

Don't know friend

Explanation:

btao matlab phala fir answer du

Attachments:
Answered by Anonymous
15

This C++ program, using a stack data strucure, computes value of postfix expression which pushes operands and pops these values on encountering an operator.

Here is the source code of the C++ program to display the value of the postfix expression given as input. This C++ program is successfully compiled and run on DevCpp, a C++ compiler. The program output is given below.

/*

* C++ Program to Evaluate an Expression using Stacks

*/

#include <iostream>

#include <conio.h>

#include <string.h>

using namespace std;

struct node

{

int data;

node *next;

}*p = NULL, *top = NULL, *save = NULL, *ptr;

void push(int x)

{

p = new node;

p->data = x;

p->next = NULL;

if (top == NULL)

{

top = p;

}

else

{

save = top;

top = p;

p->next = save;

}

}

char pop()

{

if (top == NULL)

{

cout<<"underflow!!";

}

else

{

ptr = top;

top = top->next;

return(ptr->data);

delete ptr;

}

}

int main()

{

char x[30];

int a, b;

cout<<"enter the balanced expression\n";

cin>>x;

for (int i = 0; i < strlen(x); i++)

{

if (x[i] >= 48 && x[i] <= 57)

push(x[i]-'0');

else if (x[i] >= 42 && x[i] <= 47)

{

a=pop();

b=pop();

switch(x[i])

{

case '+':

push(a+b);

break;

case '-':

push(a-b);

break;

case '*':

push(a*b);

break;

case '/':

push(a/b);

break;

}

}

}

cout<<"ans is "<<pop()<<endl;

getch();

}

I HOPE IT HELPS. ☺FOLLOW THIS EXPRESSIONQUEEN.✌

Similar questions