Professional Documents
Culture Documents
lab3 (1)
lab3 (1)
~S.Soumya
Question 01:-Write a program to implement queue operations using with
arrays.
CODE:-
#include<stdio.h>
#include<stdlib.h>
#define max 50
void insertion();
void deletion();
void traversal();
int Q[max],rear=-1,front=-1;
int main()
{
int choice;
MENU:{
printf("1.Insrt element to queue\n2.Delete element from queue\n3.Traverse
all elements of queue\n4.Quit\n");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
insertion();
goto MENU;
break;
case 2:
deletion();
goto MENU;
break;
case 3:
traversal();
goto MENU;
break;
case 4:
printf("\n\n*****Thank you*****\n\n");
exit(1);
default:
printf("Please enter valid choice\n\n");
goto MENU;
}
}
}
void insertion(){
int item;
if(rear==max-1)
{
printf("Queue overflow\n");
}
else
{
if(front==-1)
front=0;
printf("insert the element in queue:");
scanf("%d",&item);
rear=rear+1;
Q[rear]=item;
printf("\n\n");
}
}
void deletion()
{
if (front == - 1 || front > rear)
{
printf("Queue Underflow \n");
return ;
}
else
{
printf("Element deleted from queue is : %d", Q[front]);
front = front + 1;
printf("\n\n");
}
}
void traversal()
{
int i;
if (front == - 1)
printf("Queue is empty \n");
else
{
printf("Queue is :");
for (i = front; i <= rear; i++)
printf("%d", Q[i]);
printf("\n\n\n");
}
}
OUTPUT:-
Question 02:- Write a program to implement queue operations using with
linked lists
CODE:-
#include<stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *next;
}*front=NULL,*rear=NULL;
int dequeue(){
if(front==NULL){
printf("the queue is already empty...\n");
return 0;
}
else if(front==rear){
int n;
n=front->data;
free(front);
front=rear=NULL;
return n;
}
else{
struct node *temp;
int n=front->data;
temp=front;
front =front ->next;
free(temp);
return n;
}
}
int main(){
int n;
while(1){
printf("\n\n\n\nenter 1 for enqueue\nenter 2 for dequeue\nenter 3 for
exiting");
scanf("%d",&n);
switch(n){
case 1:
printf("enter the number: ");
scanf("%d",&n);
enqueue(n);
break;
case 2:
n=dequeue();
if(n){
printf("the deleted integer is: %d\n",n);
}
break;
case 3:
exit(0);
}
}
}
OUTPUT:-
Question 03:- Write a program to implement Circular queue operations using
with circular arrays
CODE:-
#include<stdio.h>
int q[5];
int f,r;
r=-1;
f=-1;
void display(){
if(f==-1){
printf("the queue is empty...");
return;
}
printf("the elements of the queue are: ");
for(int i=f;i!=r;i=(i+1)%5){
printf("%d ",q[i]);
}
printf("%d",q[r]);
}
void peek(){
if(f==-1){
printf("the queue is empty...\n");
return;
}
printf("the peek element is: %d",q[r]);
}
int dequeue(){
if(f==-1){
printf("the queue is empty..\n");
return 0;
}
else if(f==r){
int n;
n=q[f];
f=r=-1;
return n;
}
else{
int n;
n=q[f];
f=(f+1)%5;
return n;
}
}
int main(){
int n;
while(1){
printf("\n\n\n\nenter 1 for enqueue\nenter 2 for dequeue\nenter 3 for
peek\nenter 4 for display\nenter 5 for exit\n");
scanf("%d",&n);
switch(n){
case 1:
printf("enter the number: ");
scanf("%d",&n);
enqueue(n);
break;
case 2:
n=dequeue();
if(n){
printf("the deleted integer is: %d\n",n);
}
break;
case 3:
peek();
break;
case 4:
display();
break;
case 5:
exit(0);
}
}
}
OUTPUT:-
void peek(){
if(r==-1){
printf("the queue is empty..\n");
return;
}
printf("the peek element is: %d",q[r]);
}
int main(){
int n;
while(1){
printf("\n\n\n\nenter 1 for enqueue\nenter 2 for dequeue\nenter 3 for
peek\nenter 4 for display\nenter 5 for exiting: ");
scanf("%d",&n);
switch(n){
case 1:
printf("enter 1 for adding at the last\n2 for adding at the beginning:
");
scanf("%d",&n);
if(n==1){
printf("enter the number: ");
scanf("%d",&n);
enqueue(n);
}
else if(n==2){
printf("enter the number: ");
scanf("%d",&n);
enqueuefront(n);
}
break;
case 2:
n=dequeue();
if(n){
printf("the deleted integer is: %d\n",n);
}
break;
case 3:
peek();
break;
case 4:
display();
break;
case 5:
exit(0);
}
}
}
OUTPUT:-