Friday, February 13, 2015
C Program for Array Representation of Stack Push Pop and Display
What is Stack?
Stack is a LIFO (last in first out) structure. It is an ordered list of the same type of elements. A stack is a linear list where all insertions and deletions are permitted only at one end of the list. When elements are added to stack it grow at one end. Similarly, when elements are deleted from a stack, it shrinks at the same end.
Also Read: C++ program to perform a PUSH operation on a dynamically allocated stack
Also Read: Menu Driven C Program to Perform Insert, Display and Delete Operations on a Singly Linked List (SLL)
Below I have written a C program that performs push, pop and display operations on a stack. It is implemented using 1-D array.
#include<stdio.h>
#include<conio.h>
#include<process.h> //for exit()
#include<stdlib.h> //for system("cls")
#define MAX 5 //Maximum number of elements that can be stored
int top=-1,stack[MAX];
void push();
void pop();
void display();
void main()
{
int ch;
while(1) //infinite loop, will end when choice will be 4
{
system("cls"); //work in windows, for other OS change it to system("clear")
printf("*** Stack Menu ***");
printf("
1.Push
2.Pop
3.Display
4.Exit");
1.Push
2.Pop
3.Display
4.Exit");
printf("
Enter your choice(1-4):");
Enter your choice(1-4):");
scanf("%d",&ch);
switch(ch)
{
case 1: push();
break;
case 2: pop();
break;
case 3: display();
break;
case 4: exit(0);
default: printf("
Wrong Choice!!Press any key....");
Wrong Choice!!Press any key....");
getch();
}
}
}
void push()
{
int val;
if(top==MAX-1)
{
printf("
Stack is full!!Press any key....");
Stack is full!!Press any key....");
getch();
}
else
{
printf("
Enter element to push:");
Enter element to push:");
scanf("%d",&val);
top=top+1;
stack[top]=val;
printf("
Press any key....");
Press any key....");
getch();
}
}
void pop()
{
if(top==-1)
{
printf("
Stack is empty!!Press any key....");
Stack is empty!!Press any key....");
getch();
}
else
{
printf("
Deleted element is %d
Press any key....",stack[top]);
Deleted element is %d
Press any key....",stack[top]);
top=top-1;
getch();
}
}
void display()
{
int i;
if(top==-1)
{
printf("
Stack is empty!!Press any key....");
Stack is empty!!Press any key....");
getch();
}
else
{
printf("
Stack is...
");
Stack is...
");
for(i=top;i>=0;--i)
printf("%d
",stack[i]);
",stack[i]);
printf("
Press any key....");
Press any key....");
getch();
}
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.