What is stack?

Stack is a linear data structure which can store object in particular order
The order may be
  • Last in First out 
  • First in last out

Basic Functions use in stack

  • Push()
  • Pop()
  • Isempty()
  • Isfull()
  • Peek()
Push()
Push function is used to insert element at the top of stack
Steps:
  • Check stack is it full or not
  • If stack full it produces error
  • If stack is not full increment top to point next empty space


POP()

Pop function is used to remove a elements from top of stack

Step

  • Create temp variables

  • Assign value to temp

  • Decrement on top

             

             ISEMPTY()

If top is equal to -1 then stack is empty

             ISFULL()

If stack is equal to its size then stack is full

EXAMPLE PROGRAM

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
using namespace std;
struct stack
{
 int top;
 int data[5];
};
void initialize (stack & s)
{
s.top=-1;
for(int i=0 ; i<=5 ; i++)
{
s.data[i]=0;
}
}
void push (stack &p , int n)
{
 p.top++;	
 p.data[p.top]=n;
}
void pop (stack &s)
{
int temp;
temp=s.data[s.top];
s.top--;
cout<<"\n"<<temp<<endl;
}
void display (stack &t)
{
cout<<"Values in stack :";
for(int i=4 ; i>=0 ;i-- )
{
cout<<t.data[i]<<"\t";
}
}
int main()
{
stack s1;
initialize(s1);
push(s1 , 5);
push(s1 , 4);
push(s1 , 15);
push(s1 , 44);
push(s1 , 34);
pop(s1);
display(s1);
}
Infix to Postfix using stack

Order of operation

Parantheses  
() {} []
Exponents
Left  to Right
Multiplication and Division
Left and right
Addition and subtraction
Left to right

5+3*2+3/4


INPUT ACTION STACK POST FIX STRING
5 Append $ 5
+ Push $+ 5
3 Append $+ 53
* Push $+* 53
2 Append $+* 532
+ Pop $+ 532*+
3 Append $+ 532*+3
/ pop $+/ 532*+3
4 Append $+/ 532+*34
              532+*34/+