(DS-4)
4A.Write a program to implement the concept of Queue with Insert, Delete, Display and Exit operations.
#include<stdio.h>
#define size 3
void enqueue();
void dequeue();
void display();
int queue[size], front=-1, rear=-1,i;
int main()
{
int ch;
printf("-----Menu Driven-----");
do
{
printf("\n1.ENQUEUE \n2.DEQUEUE\n3.PRINT\n4.EXIT");
printf("\nEnter a choice:");
scanf("%d",&ch);
switch(ch)
{
case 1: enqueue();
break;
case 2: dequeue();
break;
case 3: display();
break;
case 4:
break;
}
}while(ch!=4);
return 0;
}
void enqueue()
{
int val;
printf("\nEnter an element to insert:");
scanf("%d",&val);
if(front==-1)
{
front++,rear++;
queue[rear]=val;
}
else if(rear==size-1)
{
printf("\nQueue is full");
}
else
{
queue[++rear]=val;
}
}
void dequeue()
{
int val;
if(front==-1)
{
printf("\nQueue is empty");
}
else if(rear==front && rear!=-1)
{
val=queue[front];
printf("\nThe value deleted is %d :",val);
front=rear=-1;
}
else
{
val=queue[front];
printf("\nValue deleted is %d ",val);
front++;
}
}
void display()
{
if(front==-1)
{
printf("\nQueue is Empty");
}
else
{
printf("\nThe Queue is :");
for(i=front ; i<=rear ; i++)
{
printf("\t %d",queue[i]);
}
}
}
4B.Write a program to implement the concept of Circular Queue.
#include<stdio.h>
#define size 3
void enqueue();
void dequeue();
void display();
int queue[size], front=-1, rear=-1,i ;
int main()
{
int ch;
printf("-----Menu Driven-----");
do
{
printf("\n1.ENQUEUE \n2.DEQUEUE\n3.PRINT\n4.EXIT");
printf("\nEnter your choice :");
scanf("%d",&ch);
switch(ch)
{
case 1: enqueue();
break;
case 2: dequeue();
break;
case 3: display();
break;
case 4:
break;
}
}while(ch!=4);
return 0;
}
void enqueue()
{
int val;
printf("\nEnter an element to insert:");
scanf("%d",&val);
if(rear==-1)
{
rear++;
queue[rear]=val;
front++;
}
else if((rear==size-1 && front==0)||(front==rear+1))
{
printf("\nQueue is full");
}
else
{
rear=(rear+1)%size;
queue[rear]=val;
}
}
void dequeue()
{
int val;
if(front==-1)
{
printf("\nQueue is empty");
}
else if(rear==front && rear!=-1)
{
val=queue[front];
printf("\nThe value deleted is %d ",val);
front=rear=-1;
}
else
{
val=queue[front];
printf("\nValue deleted is %d ",val);
front=(front+1)%size;
}
}
void display()
{
if(front==-1)
{
printf("\nQueue is Empty");
}
else
{
printf("\nThe Queue is :");
for(i=front ; i!=rear ; i=(i+1)%size)
{
printf("\t %d",queue[i]);
}
printf("\t %d",queue[i]);
}
}
4C.Write a program to implement the concept of Deque.
#include<stdio.h>
#define size 5
int queue[size],rear=-1,front=-1,te=0,x,i;
void insert_rear();
void insert_front();
void del_rear();
void del_front();
void display();
int main()
{
int opt;
do
{
printf("\n 1. Insert at rear\n 2. Insert at front \n 3. Delete from rear \n 4. Delete from front \n 5. Display \n 6. Exit");
printf("\n Enter an option:");
scanf("%d",&opt);
switch(opt)
{
case 1:insert_rear();
break;
case 2:insert_front();
break;
case 3:del_rear();
break;
case 4:del_front();
break;
case 5:display();
break;
case 6:
break;
}
}while(opt!=6);
return 0;
}
void insert_rear()
{
int val;
printf("\n Enter value to insert at rear :");
scanf("%d",&val);
if(te==size)
{
printf("\n Queue is full !!");
}
else if(te==0)
{
rear=front=0;
queue[rear]=val;
te=te+1;
}
else
{
rear=(rear+1)%size;
queue[rear]=val;
te=te+1;
}
}
void insert_front()
{
int val;
printf("\n Enter value to insert at front :");
scanf("%d",&val);
if(te==size)
{
printf("\n Queue is full !!");
}
else if(te==0)
{
rear=front=0;
queue[rear]=val;
te=te+1;
}
else
{
if(front==0)
{
front=size-1;
}
else
{
front=front-1;
}
queue[front]=val;
te=te+1;
}
}
void del_rear()
{
if(te==0)
{
printf("\n Queue is empty !!");
}
else
{
if(rear==-1)
{
rear=size-1;
}
printf("\n Number Deleted fron Rear end is %d \n",queue[rear]);
rear=rear-1;
te=te-1;
}
}
void del_front()
{
if(te==0)
{
printf("\n Queue is empty !!");
}
else
{
printf("\n Number Deleted from front end is %d \n",queue[front]);
front=(front+1)%size;
te=te-1;
}
}
void display()
{
if(te==0)
{
printf("\n Queue is empty !!");
}
else
{
x=front;
printf("\n Queue is :");
for(i=1 ; i<=te ; i++)
{
printf("\t %d",queue[x]);
x=(x+1)%size;
}
printf("\n");
}
}
Comments
Post a Comment