Exam 6 - Question 1 (b)
itsLu
c_cpp
a year ago
1.8 kB
2
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