Exam 6 - Question 1 (b)
itsLu
c_cpp
2 years ago
1.8 kB
4
Indexable
#include <iostream>
using namespace std;
class queueUsingArray
{
int * queueArray , sizeOfQueue , front , rear ,counter;
public:
queueUsingArray(int sizeOfArray = 1)
{
sizeOfQueue = sizeOfArray;
queueArray = new int[sizeOfQueue];
front = rear = counter = 0;
}
bool isFull()
{
return counter == sizeOfQueue;
}
void doubleSize()
{
int * tempArray = new int[sizeOfQueue * 2];
for(int k = 0 ; k < sizeOfQueue ; k++)
tempArray[k] = queueArray[(k + front) % sizeOfQueue];
delete[] queueArray;
sizeOfQueue *= 2;
queueArray = tempArray;
front = 0;
rear = counter;
}
void enqueue (int data)
{
if(isFull())
doubleSize();
queueArray[rear] = data;
rear = (rear + 1) % sizeOfQueue;
counter++;
}
bool isEmpty()
{
return counter == 0;
}
int dequeue()
{
if(isEmpty())
{
cout << "Queue is empty\n";
return -1;
}
int temp = front;
front = (front + 1) % sizeOfQueue;
counter--;
return queueArray[temp];
}
int getLength()
{
return counter;
}
void printQueue()
{
if(isEmpty())
cout << "Queue is empty\n";
else
{
for(int k = 0 ; k < counter ; k++)
cout << queueArray[(k + front) % sizeOfQueue] << "\t";
}
}
};
int main()
{
queueUsingArray queue1;
int studentID;
for(int k = 0 ; k < 30 ; k++)
{
cin >> studentID;
queue1.enqueue(studentID);
}
queue1.printQueue();
}
Editor is loading...
Leave a Comment