Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 18

DATA STRUCTURE WITH C LABORATOURY

18CSL38
Laboratory program 3

Parvathi S J
Assistant Professor
Dept of CSE
GSSSIETW, Mysuru.
Examples of STACK
A stack is an ordered collection of items where the
addition of new items and the removal of existing
items always takes place at the same end. This end is
commonly referred to as the "TOP". The end
opposite the top is known as the "BASE".
INTRODUCTION
•Stack is a special type of data structure

• where insertion is done from one end called 'top' of stack and
deletion will be done from the same end.

•The last element inserted will be on the top of the stack.



•last element inserted is the first element to be deleted.

• So, stack is also called Last In First Out(LIFO)data structure.


Terminology
1. Max size: This term is used to refer the maximum size
of the stack. This is not a standard term.
2. Stack empty or underflow : If stack has no elements
and pop operation is performed or an element is
deleted from empty stack then such condition is
called as "Underflow".
3. Overflow or stack full: If stack is full i.e. there is no
more space for new item and push operation is done
then such condition is called as '‘Overflow.''
Simple representation of a Stack
INSERTING ELEMENT TO STACK

top
REMOVING ELEMENT FROM A STACK

top
3) Design, Develop and Implement a menu driven Program
in C for the following operations on
STACK
a. Push an Element on to Stack
b. Pop an Element from Stack
c. Demonstrate how Stack can be used to check
Palindrome
d. Demonstrate Overflow and Underflow situations on
Stack
e. Display the status of Stack
f. Exit
Support the program with appropriate functions for each
Push (ItemType newItem)
• Function: Adds newItem to the top of the
stack.
• Preconditions: Stack has been initialized and
is not full.
• Postconditions: newItem is at the top of the
stack.
Push an Element on to Stack
#define max_size 5 //initializaton of stack size
int stack[max_size],top=-1; //initializing top
void push() //Inserting element into the stack {
int item, n;
if(top==(max_size-1)) {
printf("\nStack Overflow:");
}
else
{
printf("Enter the element to be inserted:\t");
scanf("%d",&item);
top=top+1;
stack[top]=item;
}}
Pop (ItemType& item)
• Function: Removes topItem from stack and returns
it in item.
• Preconditions: Stack has been initialized and is not
empty.
• Postconditions: Top element has been removed
from stack and item is a copy of the removed
element.
POP an Element from Stack
void pop() //deleting an element from the stack
{
int item;
if(top==-1)
{
printf("Stack Underflow:");
}
else
{
item=stack[top];
top=top-1;
printf(“\nThe poped element: %d\t",item);
}
}
Display contents of stacks
void display() {
int i;
if(top==-1)
{
printf("\nStack is Empty:");
}
else
{
printf("\nThe stack elements are:\n" );
for(i=top;i>=0;i--)
{
printf("%d\n",stack[i]);
}
}}
Checking for palindrome
Void pali(){
int i, count = 0;
for (i = 0; i <= (top / 2); i++)
{
if (stack[i] == stack[top - i])
count++;
}
if ((top / 2 + 1) == count){
printf ("It is palindrome number\n");
}
else {
printf ("It is not a palindrome number\n");
}}
Main program
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define max_size 5
int stack[max_size],top=-1;
void push();
void pop();
void display();
void pali();
int main()
{
int choice;
while(choice)
{
//printf("\n");
printf("\n\n--------STACK OPERATIONS ---------- \n");
printf("1.Push\n");
printf("2.Pop\n");
printf("3.Palindrome\n");
printf("4.Display\n");
printf("5.Exit\n");
printf(" ---------------------- ");
printf("\nEnter your choice:\t");
scanf("%d",&choice);
switch(choice){
case 1: push(); break;
case 2: pop(); break;
case 3: pali(); break;
case 4: display(); break;
case 5: exit(0); break;
default: printf("\nInvalid choice:\n");
break; }}
return 0;}

You might also like