RUN


Let’s review queue and understand its implementation now. As we already discussed that queue are also abstract data type data structures following FIFO (First-In-First-Out) principle. A queue is similar to a checkout line at a bus stand. The first one in the line will also be the first one to move out after being issued a bus ticket.

Let’s look at the sample program to understand the Insertion, deletion and traverse the elements of the queue.

//the program shows the basic operations performed on a queue
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>

// declares a queue structure

struct node

{

	char data;

	node * link;

};

//functions to add, delete and show queue

node* add_Q(node *rear, char value);	//add queue

node* del_Q(node *front, char &value);	//delete queue

void show_Q(node *front);

//main program

void main()

{

	node *front, *rear;

	char value;

	int choice;

	char option = ’Y’;

	front = rear = NULL;

	clrscr();

	do

	{

		cout << ”\n Main Menu”;

		cout << ”\n Adding in Queue”;

		cout << ”\n Delete from Queue”;

		cout << ”\n Traverse the queue”;

		cout << ”\n Exit Main Menu”;

		cout << ”\n Enter a choice from Main Menu”;

		cin >> choice;

		switch (choice)

		{

			case 1:

				do

				{

					cout << ”Enter the item to be added to the queue”;

					cin >> value;

					rear = add_Q(rear, value);

					if (front == NULL)

						front = rear;

					cout << ”\n Add more element < Y / N > ? ”;

					cin >> option;
				} while (toupper(option) == ’Y’);

				break;

			case 2:

				option = ’Y’;

				do

				{

					front = del_Q(front, value);

					if (front == NULL)

						rear = front;

					if (value != -1)

						cout << ”\n Item deleted from queue is”;

					cout << ”\n Delete more items from the queue< Y / N > ? ”;

					cin >> option;
				} while (toupper(opt) == ’Y’);

				break;

			case 3:

				show_Q(front);

				break;

			case 4:

				exit(0);
		}
	}

	while (choice != 4);

}

//to add elements to the queue

node* add_Q(node *rear, char value)

{

	node * temp;

	temp = new node;

	temp->data = value;

	temp->link = NULL;

	rear->link = temp;

	rear = temp;

	return (rear);

}

// to delete items from queue

node* del_Q(node *front, char &value)

{

	node * temp;

	clrscr();

	if (front == NULL)

	{

		cout << ”queue is empty”;

		val = -1;
	}
	else

	{

		temp = front;

		front =->link;

		value = temp->data;

		temp->link = NULL;

		delete temp;
	}

	return (front);

}

// show elements of the queue

void show_Q(node *front)

{

	node * temp;

	temp = front;

	clrscr();

	cout << ”Elements of queue are”;

	while (temp != NULL)

	{

		cout << ”\n” << temp->data;

		temp = temp->link;
	}
}

Report Error/ Suggestion

Related Posts:




CopyRight © 2020

CopyRight © 2020