Programs MODULE 3
Programs MODULE 3
Program 1
Design, develop and execute a program in C to simulate the working of a queue
of integers using an array. Provide the following operations.
a. Insert
b. Delete
c. Display
#include<stdio.h>
#define maxsize 3
int q[maxsize], front=0,rear=-1;
void insert()
{
int n;
if(rear==maxsize-1)
printf("\nQueue full\n");
else
{
printf("\nEnter the data to be added\n");
scanf("%d", &n);
q[++rear]=n;
}
}
void delete()
{
if(front>rear)
printf("\nQueue is empty\n");
else
{
printf("\n%d is deleted\n",q[front++]);
if(front>rear && rear==maxsize-1)
{
printf("\nReinit\n");
front=0; rear=-1;
}
}
}
void display()
{
int i;
if(front>rear)
printf("\nQueue is empty\n");
else
{
printf("\nQueue status is\n");
for(i=front;i<=rear;i++)
printf("%d\t",q[i]);
}
}
int main()
MODULE 3
{
int ch;
while(1)
{
printf("1.Insert\n2.Delete\n3.Display\n4.Exit\n");
puts("\nEnter your choice\n");
scanf("%d",&ch);
switch(ch)
{
case 1: insert(); break;
case 2:delete(); break;
case 3:display(); break;
case 4: return 0;
default :printf("\nInvalid choice\n");
}
}
}
MODULE 3
MODULE 3
MODULE 3
Program 2
Simulate the working of Messaging system in which a message is placed in a
circular Queue by a message sender, a message is removed from the circular
queue by a message Receiver, which can also display the contents of the queue.
#include <stdio.h>
#define sz 5
int count =0;
int f=0,r=-1;
int q[sz];
void push(){
int item;
if(count == sz){
printf("Queue overflow");
return;
}
printf("Enter the element ");
scanf("%d",&item);
r = (r+1)%sz;
q[r]=item;
count++;
}
void pop(){
if(count == 0){
printf("queue underflow");
return;
}
printf("Item deleted is %d \n",q[f]);
f = (f+1)%sz;
count--;
}
void display(){
if(count == 0){
printf("Queue is empty \n");
return;
}
int j = f;
for(int i=0;i<count;i++){
printf("%d \t",q[j]);
j = (j+1)%sz;
}
printf("\n");
}
int main()
{
int option;
while(1){
printf("1.Push 2.Pop 3.Display 4. Exit \n");
int deque_arr[Size];
int front = -1;
int rear = -1;
/* Insert at rear */
void insert_rear() {
int added_item;
if ((front == 0 && rear == Size - 1) || (front == rear + 1)) {
printf("Queue Overflow\n");
return;
}
if (front == -1) { /* if queue is initially empty */
front = 0;
rear = 0;
} else if (rear == Size - 1) { /* rear is at last position of queue */
rear = 0;
} else {
rear = rear + 1;
}
printf("Input the element for adding in queue: ");
scanf("%d", &added_item);
deque_arr[rear] = added_item;
}
/* Insert at front */
void insert_front() {
int added_item;
if ((front == 0 && rear == Size - 1) || (front == rear + 1)) {
printf("Queue Overflow \n");
return;
}
if (front == -1) { /* if queue is initially empty */
front = 0;
rear = 0;
} else if (front == 0) {
front = Size - 1;
} else {
front = front - 1;
}
printf("Input the element for adding in queue: ");
scanf("%d", &added_item);
MODULE 3
deque_arr[front] = added_item;
}
/* Main function */
int main() {
int choice;
while (1) {
printf("\nEnter the choice:\n1. Insert at Rear\n2. Insert at Front\n3. Delete at Front\n4.
Delete at Rear\n5. Display Dequeue\n6. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
insert_rear();
break;
case 2:
insert_front();
break;
case 3:
delete_front();
break;
case 4:
delete_rear();
break;
case 5:
display_queue();
break;
case 6:
return 0;
default:
printf("Wrong choice\n");
}
MODULE 3
}
}
MODULE 3
Program 4
Implement a Double-Ended Queue (DEQue) Using a Linear Queue
#include <stdio.h>
#include <conio.h> // Required for getch()
printf("\nQueue Elements:\n");
for (int i = front; i <= rear; i++) {
printf("%d ", queue[i]);
}
printf("\n");
}
while (1) {
printf("\nEnter your choice:\n");
MODULE 3
printf("1. Insert at Front\n");
printf("2. Insert at Rear\n");
printf("3. Delete from Front\n");
printf("4. Delete from Rear\n");
printf("5. Display Queue\n");
printf("6. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the element to insert at front: ");
scanf("%d", &element);
i_front(element);
break;
case 2:
printf("Enter the element to insert at rear: ");
scanf("%d", &element);
i_rear(element);
break;
case 3:
element = d_front();
if (element != -9999)
printf("Deleted element from front: %d\n", element);
break;
case 4:
element = d_rear();
if (element != -9999)
printf("Deleted element from rear: %d\n", element);
break;
case 5:
display_queue();
break;
case 6:
return 0;
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
MODULE 3
MODULE 3