Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

LAB 07

LAB TASK

Lab Task 01: Create a menu driven program, to form a Linear Queue using array max size
=5, which perform the following operations on queue:
addq( ) // add element into queue
delq( ) // delete element from
queue.
displayq( ) // display the elements of queue

CODE:
#include <iostream>
#include<cstdlib>
#include<cstddef>
using namespace std;
int queue[5];
int front = - 1;
int rear = - 1;
void enqueue() {
int data;
if (rear == - 1)
cout<<"Queue Overflow"<<endl;
else {
if (front == - 1)
front = 0;
cout<<"Insert the element in queue : "<<endl;
cin>>data;
rear++;
queue[rear] = data;
}
}
void dequeue() {
if (front == - 1 || front > rear) {
cout<<"Queue Underflow ";
return ;
} else {
cout<<"Element deleted from queue is : "<< queue[front] <<endl;
front++;;
}
}
void Display() {
if (front == - 1)
cout<<"Queue is empty"<<endl;
else {
cout<<"Queue elements are : ";
for (int i = front; i <= rear; i++)
cout<<queue[i]<<" ";
cout<<endl;
}
}
int main() {
int ch;
cout<<"1) Insert element to queue"<<endl;
cout<<"2) Delete element from queue"<<endl;
cout<<"3) Display all the elements of queue"<<endl;
cout<<"4) Exit"<<endl;
do {
cout<<"Enter your choice : "<<endl;
cin>>ch;
switch (ch) {
case 1: enqueue();
break;
case 2: dequeue();
break;
case 3: Display();
break;
case 4: cout<<"Exit"<<endl;
break;
default: cout<<"Invalid choice"<<endl;
}
} while(ch!=4);
return 0;
}

Output:
Lab Task 02: Create a menu driven program, to form a Circular Queue using
array max size =5, which perform the following operations on queue:
addq( ) // add element into queue
delq( ) // delete element from
queue.
displayq( ) // display the elements of queue

Code:
#include<iostream>
#include<cstdlib>
#include<cstddef>
using namespace std;

class Queue {
public:

int rear, front;


int size;
int *circular_queue;

Queue(int siz) {
front = rear = -1;
size = siz;
circular_queue = new int[siz];
}
void enqueue(int element);
int dequeue();
void display();
};

void Queue::enqueue(int element)


{
if ((front == 0 && rear == size-1) || (rear == (front-1)%(size-1))) {
cout<<"\nQueue is Full";
return;
}
else if (front == -1) {
front = rear = 0;
circular_queue[rear] = element;
}
else if (rear == size-1 && front != 0)
{
rear = 0;
circular_queue[rear] = element;
}
else {
rear++;
circular_queue[rear] = element;
}
}
int Queue::dequeue()
{
if (front == -1) {
cout<<"\nQueue is Empty";
return -1;
}

int data = circular_queue[front];


circular_queue[front] = -1;
if (front == rear) {
front = -1;
rear = -1;
}
else if (front == size-1)
front = 0;
else
front++;

return data;
}
void Queue::display()
{
if (front == -1) {
cout<<"\nQueue is Empty"<<endl;
return;
}
cout<<"\nCircular Queue elements: ";
if (rear == front) {
for (int i = front; i <= rear; i++)
cout<<circular_queue[i]<<" ";
}
else {
for (int i = front; i<size; i++)
cout<<circular_queue[i]<<" ";
for (int i = 0; i <= rear; i++)
cout<<circular_queue[i]<<" ";
}
}
int main()
{
Queue pq(5);
pq.enqueue(2);
pq.enqueue(4);
pq.enqueue(6);
pq.enqueue(8);
pq.enqueue(10);
pq.display();
pq.dequeue();
pq.dequeue();
pq.display();
return 0;
}

Output:

You might also like