0% found this document useful (0 votes)
0 views8 pages

PROGRAM 4,6

The document describes the implementation of stack and queue data structures using arrays. It outlines the algorithms for push and pop operations for stacks, as well as enqueue and dequeue operations for queues, along with corresponding C code examples. The program includes user interaction for performing various operations on both data structures.

Uploaded by

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

PROGRAM 4,6

The document describes the implementation of stack and queue data structures using arrays. It outlines the algorithms for push and pop operations for stacks, as well as enqueue and dequeue operations for queues, along with corresponding C code examples. The program includes user interaction for performing various operations on both data structures.

Uploaded by

low34344
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

PROGRAM TO IMPLEMENT STACK USING ARRAY

Stack
It is a linear data structure that follows a particular order in which the operations are
performed.
LIFO( Last In First Out ):
This strategy states that the element that is inserted last will come out first.

ALGORITHM

Push Operation

The process of putting a new data element onto stack is known as a Push Operation. Push
operation involves a series of steps −
• Step 1 − Checks if the stack is full.
• Step 2 − If the stack is full, produces an error and exit.
• Step 3 − If the stack is not full, increments top to point next empty space.
• Step 4 − Adds data element to the stack location, where top is pointing.

Pop Operation

Accessing the content while removing it from the stack, is known as a Pop Operation. In an
array implementation of pop() operation, the data element is not actually removed,
instead top is decremented to a lower position in the stack to point to the next value.
A Pop operation may involve the following steps −
• Step 1 − Checks if the stack is empty.
• Step 2 − If the stack is empty, produces an error and exit.
• Step 3 − If the stack is not empty, accesses the data element at which top is
pointing.
• Step 4 − Decreases the value of top by 1.

PROGRAM
#include<stdio.h>
int stack[10],choice,n,top,x,i;
void push();
void pop();
void display();
void main()
{

top=-1;
printf("\n Enter the size of STACK:");
scanf("%d",&n);
printf("\n\t STACK OPERATIONS USING ARRAY");
printf("\n\t--------------------------------");
printf("\n\t [Link]\n\t [Link]\n\t [Link]\n\t [Link]");
while(1)
{
printf("\n Enter the Choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
{
push();
break;
}
case 2:
{
pop();
break;
}
case 3:
{
display();
break;
}
case 4:
{
printf("\n\t EXIT ");
break;
}
default:
{
printf ("\n\t Please Enter a Valid Choice(1/2/3/4)");
}

}
}
}
void push()
{
if(top>=n-1)
{
printf("\n\tSTACK is over flow");

}
else
{
printf(" Enter a value to be pushed:");
scanf("%d",&x);
top++;
stack[top]=x;
}
}
void pop()
{
if(top<=-1)
{
printf("\n\t Stack is under flow");
}
else
{
printf("\n\t The popped elements is %d",stack[top]);
top--;
}
}
void display()
{
if(top>=0)
{
printf("\n The elements in STACK \n");
for(i=top; i>=0; i--)
printf("\n%d",stack[i]);

}
else
{
printf("\n The STACK is empty");
}

Implementation of Queue using Array


Array implementation Of Queue:

For implementing queue, we need to keep track of two indices, front and rear. We enqueue an
item at the rear and dequeue an item from the front.
Steps for enqueue:
1. Check the queue is full or not
2. If full, print overflow and exit
3. If queue is not full, increment REAR and add the element
Algorithm
Step 1: IF REAR = MAX - 1
Write OVERFLOW
Step 2: IF FRONT = -1 and REAR = -1
SET FRONT = REAR = 0
ELSE
SET REAR = REAR + 1
Step 3: Set QUEUE[REAR] = NUM
Step 4: EXIT
Steps for dequeue:
1. Check queue is empty or not
2. if empty, print underflow and exit
3. if not empty, print element at the head and increment FRONT

Algorithm
Step 1: IF FRONT = -1 or FRONT > REAR
Write UNDERFLOW
ELSE
SET VAL = QUEUE[FRONT]
SET FRONT = FRONT + 1
Step 2: EXIT

PROGRAM
#include<stdio.h>
#include<stdlib.h>

void insert();
void delete();
void display();
int front = -1, rear = -1,n;
int queue[50];
void main ()
{
int choice;
while(1)
{
printf("\nEnter the size of the queue\n");
scanf("\n%d",&n);

printf("\n*********Main Menu***********\n");

printf("\n============================================================
=====\n");
printf("\[Link] an element\[Link] an element\[Link] the queue\[Link]\n");
printf("\nEnter your choice ?");
scanf("%d",&choice);
switch(choice)
{
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("\nEnter valid choice??\n");
}
}
}
void insert()
{
int item;
printf("\nEnter the element\n");
scanf("\n%d",&item);
if(rear == n-1)
{
printf("\nOVERFLOW\n");
return;
}
if(front == -1 && rear == -1)
{
front = 0;
rear = 0;
}
else
{
rear = rear+1;
}
queue[rear] = item;
printf("\nValue inserted ");

}
void delete()
{
int item;
if (front == -1)
{
printf("\nUNDERFLOW\n");
return;

}
else
{
item = queue[front];
if(front == rear)
{
front = -1;
rear = -1 ;
}
else
{
front = front + 1;
}
printf("\nvalue deleted ");
}

void display()
{
int i;
if(rear == -1)
{
printf("\nEmpty queue\n");
}
else
{ printf("\nprinting values .....\n");
for(i=front;i<=rear;i++)
{
printf("\n%d\n",queue[i]);
}
}
}

You might also like