Breaking News
Loading...
Tuesday, 11 October 2016

Array based Queue c++ simple project

17:19
In this c++ tutorial we will discuss  about Array Based Queue C++ project which have 10 functions including main function. User will select an option from main menu function and the respective function will be called. The code is for array based queue implementation. It comprises of various operations that can be performed on array based queue. This code can be used as a project or self-assignment by beginners of data structure. It is recommended to understand the code thoroughly mainly the “logic” then try to create logic for each individual function by yourself. It will surely enhance your coding capability

What is a Queue?
  • List of items arranged on basis of first in and first out principal is called queue.
  • It has 2 ends.
  • Data can be considered as to pass through hollow cylinder.
  • Data enters from one end and leaves from another end.
  • Data only moves in one direction.


Characteristics Of Queue:


  • It works on the FIFO (first in first out) principal.
  • It is ordered list and has elements/data of same type.
  • It doesn’t allow duplication of data.
  •  Enqueue function is used to insert new item in queue.
  • Dequeue function is used to remove any item from queue.
  •  If you want to dequeue any random item from queue, you will have to first dequeuer all items above it. Then remove the item you want. Then enqueue dequeued items accordingly.
cpp queue source code
queue image example 


Real World Examples:


  1. People standing in a queue for submission of their bills in bank. The person who came first will submit bill first. The person who came later will submit bill later.
  2. Cars on one way road. The car that entered first will exists first while the car that entered later will exit later.


Array Based Queue in C++ Data Structures
It is a linear data structure in which insertion of data/element takes places from end (rear) and deletion of data/element takes place from front (head).It allows you to store a data in form of array.

Project Overview:

Below I am going to share with you a c++ source code that is compiled using dev c++ compiler. The code is for array based queue implementation. It comprises of various operations that can be performed on array based queue. This code can be used as a project or self-assignment by beginners of data structure. It is recommended to understand the code thoroughly mainly the “logic” then try to create logic for each individual function by yourself. It will surely enhance your coding capability.

Code:

#include<iostream>     //header files
#include<conio.h> //header files
#include<stdlib.h> //header files
#include<stdio.h> //header files
using namespace std;

//////////////////////////////////////////////////////////////////////////////////////
/*declaration of global variables*/
/* front will show first index of array, initiated with -1 that shows that nothing is present at first position in queue*/

int
front=-1;
/* rear will show first last index of array, initiated with -1 that shows that nothing is present at last position in queue*/

int
rear=-1;
int
index=0; // index will represent that how long is queue
int *queue=new int[index]; // for dynamical creation of queue
//////////////////////////////////////////////////////////////////////////////////////
/*declaration of functions*/
The functions below are named in such a way that they will clearly reveal what they are meant for
//////////////////////////////////////////////////////////////////////////////////////
void createqueue();
void
enqueue(int a);
int
dequeue();
void
deletequeue();
void
clearqueue();
int
isfull();
int
isempty();
void
find();
void
display();
void
menu();

/////////////////////////////////////////////////////////////////////////////////////
The function below is the first function that would be called when code is executed. It will display a menu having different functionalities. Just select the number corresponding to operation you want to perform and then you will be on your way to go 
////////////////////////////////////////////////////////////////////////////////////
void menu()
{

system("pause"); /*built in function supported by dev c++ to pause a screen until “enter” or any key is entered to proceed further.*/
system("cls"); /*It will remove any garbage value that may appear on screen*/
int
option;
cout<<"****welcome to queue application****\n";
cout<<"press 1 to create queue\n";
cout<<"press 2 to display queue\n";
cout<<"press 3 to delete queue\n";
cout<<"press 4 to clear queue\n";
cout<<"press 5 to find number in queue\n";
cout<<"press 6 to enqueue\n";
cout<<"press 7 to dequeue\n";
cout<<"press 8 to check if queue is full\n";
cout<<"press 9 to check if queue is empty\n";
cout<<"press 0 to exit\n";
cout<<"enter option\n";
cin>>option;
//////////////////////////////////////////////////////////////////////////////////////
Below I have used a switch to call various functions. If you are a beginner and don’t have any idea about “switch” you can go ahead with if-else statements but their drawback is they mess up everything, make confusions as code gets lengthy.
/////////////////////////////////////////////////////////////////////////////////////
switch(option)
{

case
1: // this case will simply call create queue function and will create it.
createqueue();
menu();
break
;

case
2: // this case will call display function and will display queue items
display();
menu();
break
;

case
3: // this function will delete whole queue by calling delete queue function
deletequeue();
menu();
break
;

case
4: // it will only clear items in queue but empty queue will still exist
clearqueue();
menu();
break
;

case
5: // it will search for required item in queue
find();
menu();
break
;

case
6: //
{
int
a;
/*the check below will be used throughout the code to check if queue is created or not. Note the point that whenever front and rear will have negative value it means that array does not exist because array’s index can never be negative*/

if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else
if
(isfull()==1)

cout<<"queue is already full\n";

else

{

cout<<"enter element to enqueue\n";
cin>>a;
enqueue(a);
}

menu();
}

break
;

case
7:
{

if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else
if
(isempty()==1)
{

cout<<"queue is already empty\n";
}

else

{

cout<<"element dequeued is :"<<dequeue();
cout<<endl;
}

menu();
}

break
;

case
8:
{

int
a;
if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else

isfull();
if
(a==1)
cout<<"queue is full\n";
else

cout<<"queue is not full\n";
}

menu();
break
;

case
9:
{

int
a;
if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else

isempty();
if
(a==1)
cout<<"queue is empty\n";
else

{

cout<<"queue is not empty\n";
}

menu();
}

break
;

case
0:
exit(0);
break
;

default
:
cout<<"invalid input\n";
break
;
}
}

//////////////////////////////////////////////////////////////

void
createqueue()
{

/*The loop below will continue till you enter correct size of queue that must be greater than zero*/

do

{

cout<<"enter size of queue:";
cin>>index;
}

while
(index<=0);
//////////////////////////////////////////////////////////////////////////////////////
Suppose you entered 10 then, queue will be like that
Front/rear



queue input value
enter queue value = 10

Dequeue/ Enqueue
//////////////////////////////////////////////////////////////////////////////////////

/*The loop below will continue till you enter accurate current size that must be positive and less then index value. The “rear” here is pointing last index. */

do

{

cout<<"enter current size of queue:";
cin>>rear;
}

while
(rear>index||rear<0);
/////////////////////////////////////////////////////////////////////////////////
Suppose you entered rear=5 so,


c++ enter input
queue input = 5




//////////////////////////////////////////////////////////////////////////////////
front=0; // front always start from zero it could be 1 also.
cout<<"enter elements\n";
for
(int i=front;i<rear;i++)// loop will start from ‘0’ and continue till “rear” value
{
cin>>queue[i];
}

cout<<"queue is successfully created\n";
}


c++ queue created function
queue created c++



//////////////////////////////////////////////////////////////////////////////////////
The function below will be used for display.
//////////////////////////////////////////////////////////////////////////////////////

void
display()
{

if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else
if
(front<rear)
{

cout<<"total number of elements in queue are:";
cout<<rear-front<<endl; // rear=5 , front=0 so 5-0=5 elements
cout<<"elements are\n";
for
(int i=front;i<rear;i++)
cout<<queue[i]<<endl;
}

else

{

int
length;
length=(index-front)+rear;
cout<<"total number of elements in queue are:";
cout<<length<<endl;
cout<<"elements are\n";
for
(int i=front;i<index;i++)
for
(int j=0;j<rear;j++)
cout<<queue[1]<<endl;
}
}


//////////////////////////////////////////////////////////////////

void
deletequeue()
{

if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else

front=-1;
rear=-1;
cout<<"queue is successfully deleted\n";
}


/////////////////////////////////////////////////////////////////

void
clearqueue()
{

if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else

front=0;
rear=0;
cout<<"queue is successfully cleared\n";
}


////////////////////////////////////////////////////////////////

void
find()
{

int
temp=0;
int
number;
int
i;
if
(front==-1&&rear==-1)
cout<<"queue not created\n";
else

cout<<"enter number to find in queue\n";
cin>>number;
for
(i=front;i<rear;i++)
{

if
(queue[i]==number)
{

cout<<"number found at position"<<i<<endl;
temp=1;

}
}


if
(temp==0)
cout<<"number not found\n";

}


//////////////////////////////////////////////////////////////

void
enqueue(int a)
{

queue[rear]=a;
rear=(rear+1)%index;
cout<<"element is successfully enqueued\n";
}


//////////////////////////////////////////////////////////////

int
dequeue()
{

int
a=queue[front];
front=(front+1)%index;
return
a;
}


////////////////////////////////////////////////////////////

int
isfull()
{

if
(rear-front==rear)
return
1;
else
return
0;
}

///////////////////////////////////////////////////////////

int
isempty()
{

if
(front==rear)
return
1;
else
return
0;
}




///////////////////////////////////////////////////////////////

int
main()
{

menu();
return 0;
}
C++ source code output:
Sample input output



queue project menu
menu output selection

if we select option 1 and enter 1, 2, 3 then option 2 we have


queue display c++ project
display queue c++ project

find more projects here: C++ projects source code

0 comments:

Post a Comment

 
Toggle Footer