Starting from:

$30

CSE225L-Lab 7 Queue (array based) Solved

lab we will design and implement the Queue ADT using array.

quetype.h

 

#ifndef QUETYPE_H_INCLUDED

#define QUETYPE_H_INCLUDED

 

class FullQueue

{};

class EmptyQueue

{};

template<class ItemType class QueType

{     public:         QueType();

        QueType(int max);         ~QueType();         void MakeEmpty();         bool IsEmpty();         bool IsFull();         void Enqueue(ItemType);         void Dequeue(ItemType&);     private:

        int front;         int rear;         ItemType* items;         int maxQue;

};

 

#endif // QUETYPE_H_INCLUDED

 quetype.cpp

 

#include "quetype.h"

 

template<class ItemType

QueType<ItemType::QueType(int max)

{

    maxQue = max + 1;     front = maxQue - 1;     rear = maxQue - 1;

    items = new ItemType[maxQue];

} template<class ItemType

QueType<ItemType::QueType()

{

    maxQue = 501;     front = maxQue - 1;     rear = maxQue - 1;

    items = new ItemType[maxQue]; }
template<class ItemType QueType<ItemType::~QueType()

{

    delete [] items;

}

template<class ItemType

void QueType<ItemType::MakeEmpty()

{     front = maxQue - 1;     rear = maxQue - 1;

}

template<class ItemType

bool QueType<ItemType::IsEmpty()

{

    return (rear == front);

}

template<class ItemType

bool QueType<ItemType::IsFull()

{

    return ((rear+1)%maxQue == front);

}

template<class ItemType

void QueType<ItemType::Enqueue(ItemType newItem)

{

    if (IsFull())         throw FullQueue();     else     {

        rear = (rear +1) % maxQue;         items[rear] = newItem;

    } }

template<class ItemType

void QueType<ItemType::Dequeue(ItemType& item)

{

    if (IsEmpty())         throw EmptyQueue();     else     {

        front = (front + 1) % maxQue;         item = items[front];

    } }
 

             

Generate the driver file (main.cpp) where you perform the following tasks. Note that you cannot make any change to the header file or the source file.

Operation to Be Tested and Description of Action
Input Values
Expected Output
        •    Create a queue of integers of size 5
 
 
        •    Print if the queue is empty or not
 
Queue is Empty
        •    Enqueue four  items 
5  7  4  2  
 
        •    Print if the queue is empty or not
 
Queue is not Empty
        •    Print if the queue is full or not
 
Queue is not full
        •    Enqueue another item
6
 
•     Print the values in the queue (in the order the values are given as input)
 
5  7  4  2  6
        •    Print if the queue is full or not
 
Queue is Full
        •    Enqueue another item
8
Queue Overflow
        •    Dequeue  two items
 
 
•     Print the values in the queue (in the order the values are given as input)
 
4  2  6
        •    Dequeue three items
 
 
        •    Print if the queue is empty or not
 
Queue is Empty
        •    Dequeue an item
 
Queue Underflow
•     Take an integer n from the user as input and use a queue to print binary values of each integer from 1 to n. Here is how it can be done.

o   Create an empty queue o Enqueue the first binary number “1” to the queue.

o   Now run a loop for generating and printing n binary numbers.

▪  Dequeue and print the value.

▪  Append “0” at the dequeued value and enqueue it.

▪  Append “1” at the dequeued value and enqueue it.
10
1

10

11

100

101

110

111

1000

1001

1010

More products