0% found this document useful (0 votes)
50 views9 pages

CDS Assignment 6

The document contains code for implementing both a circular queue and a priority queue in C. For the circular queue, functions are defined for enqueue, dequeue, and display operations. For the priority queue, functions are defined for insertion based on priority, deletion based on priority, and displaying the queue elements. The main function provides a menu to test the queue operations and takes user input for the chosen operation.

Uploaded by

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

CDS Assignment 6

The document contains code for implementing both a circular queue and a priority queue in C. For the circular queue, functions are defined for enqueue, dequeue, and display operations. For the priority queue, functions are defined for insertion based on priority, deletion based on priority, and displaying the queue elements. The main function provides a menu to test the queue operations and takes user input for the chosen operation.

Uploaded by

Soumen Pathak
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

ASSIGNMENT-6

Q)Write a program in C to implement Circular


Queue.
CODE
#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
int queue[5];
int front=-1;
int rear=-1;
void enqueue(int element)
{
if(front==-1 && rear==-1)
{
front=0;
rear=0;
queue[rear]=element;
}
else if((rear+1)%5==front)
{
printf("Queue is overflow..");
}
else
{
rear=(rear+1)%5;
queue[rear]=element;
}
}

void dequeue()
{
if((front==-1) && (rear==-1))
{
printf("\nQueue is underflow..");
}
else if(front==rear)
{
printf("\nThe dequeued element is %d",
queue[front]);
front=-1;
rear=-1;
}
else
{
printf("\nThe dequeued element is %d",
queue[front]);
front=(front+1)%5;
}
}

void display()
{
int i=front;
if(front==-1 && rear==-1)
{
printf("\n Queue is empty..");
}
else
{
printf("\nElements in a Queue are :");
while(i<=rear)
{
printf("%d,", queue[i]);
i=(i+1)%5;
}
}
}
void main()
{
int choice=1,x;

while(choice<4 && choice!=0)


{
printf("\nPress 1: Insert an element");
printf("\nPress 2: Delete an element");
printf("\nPress 3: Display the element");
printf("\nPress 4: Exit the Program");
printf("\nEnter your choice");
scanf("%d", &choice);

switch(choice)
{

case 1:

printf("Enter the element which is to be


inserted");
scanf("%d", &x);
enqueue(x);
break;
case 2:
dequeue();
break;
case 3:
display();
case 4: exit(0);
break;

}}

}
OUTPUT
Q)Write a Program in C to implement priority
queue.
CODE
#include <stdio.h>
#include <stdlib.h>
void insert_by_priority(int);
void delete_by_priority(int);
void create();
void check(int);
void display_pqueue();
int pri_que[5];
int front, rear;
void main()
{
int n, ch;
create();
while (1)
{
printf("\n1 - Insert an element into
queue");
printf("\n2 - Delete an element from
queue");
printf("\n3 - Display queue elements");
printf("\n4 - Exit");
printf("\nEnter your choice : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
printf("\nEnter value to be inserted
: ");
scanf("%d",&n);
insert_by_priority(n);
break;
case 2:
printf("\nEnter value to delete :
");
scanf("%d",&n);
delete_by_priority(n);
break;
case 3:
display_pqueue();
break;
case 4:
exit(0);
default:
printf("\nChoice is incorrect, Enter
a correct choice");
}
}

}
void create()
{
front = rear = -1;
}
void insert_by_priority(int data)
{
if (rear >= 4)
{
printf("\nQueue overflow no more
elements can be inserted");
return;
}
if ((front == -1) && (rear == -1))
{
front++;
rear++;
pri_que[rear] = data;
return;
}
else
check(data);
rear++;
}
void check(int data)
{
int i,j;
for (i = 0; i <= rear; i++)
{
if (data >= pri_que[i])
{
for (j = rear + 1; j > i; j--)
{
pri_que[j] = pri_que[j - 1];
}
pri_que[i] = data;
return;
}
}
pri_que[i] = data;
}
void delete_by_priority(int data)
{
int i;
if ((front==-1) && (rear==-1))
{
printf("\nQueue is empty no elements to
delete");
return;
}
for (i = 0; i <= rear; i++)
{
if (data == pri_que[i])
{
for (; i < rear; i++)
{
pri_que[i] = pri_que[i + 1];
}
pri_que[i] = -99;
rear--;
if (rear == -1)
front = -1;
return;
}
}
printf("\n%d not found in queue to delete",
data);
}
void display_pqueue()
{
if ((front == -1) && (rear == -1))
{
printf("\nQueue is empty");
return;
}
for (; front <= rear; front++)
{
printf(" %d ", pri_que[front]);
}
front = 0;
}

OUTPUT

You might also like