National University of Modern
Languages Islamabad
Submitted by: AREEBA INAYAT
Submitted to: MAM MARIYAM IMTIAZ
Course: DATA STRUCTURE
Roll Number: FL23732
LAB 6
You are required to implement following operations of linear Queue using array in C++.
MakeEmpty
IsEmpty
IsFull
Enqueue
Dequeue
peek
Display
Your Queue class should have a constructor and destructor.
FOR INT
#include <iostream>
using namespace std;
class QueueType {
public:
QueueType(int);
~QueueType();
void MakeEmpty();
bool IsEmpty() const;
bool IsFull() const;
void Enqueue(int);
void Dequeue();
int Peek() const;
void Display() const;
private:
int front, rear;
int* items;
int maxQue;
};
QueueType::QueueType(int size) {
front = -1;
rear = -1;
maxQue = size;
items = new int[maxQue];
}
QueueType::~QueueType() {
delete[] items;
}
void QueueType::MakeEmpty() {
front = -1;
rear = -1;
}
bool QueueType::IsEmpty() const {
return (front == -1);
}
bool QueueType::IsFull() const {
return (rear == maxQue - 1);
}
void QueueType::Enqueue(int value) {
if (front == -1) {
front = 0;
}
rear++;
items[rear] = value;
}
void QueueType::Dequeue()
{
front++;
}
int QueueType::Peek() const
{
return items[front];
}
void QueueType::Display() const {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue contents: ";
for (int i = front; i <= rear; i++) {
cout << items[i] << " ";
}
cout << endl;
}
int main() {
QueueType que(5);
int val;
for (int i = 0; i < 5; i++) {
cout << "Enter a value to insert: ";
cin >> val;
if (!que.IsFull())
que.Enqueue(val);
cout << "peek item: " << que.Peek() << endl;
}
que.Display();
if (!que.IsEmpty())
{
que.Dequeue();
}
que.Display();
return 0;
}
FOR FLOAT
#include <iostream>
using namespace std;
class QueueType {
public:
QueueType(int);
~QueueType();
void MakeEmpty();
bool IsEmpty() const;
bool IsFull() const;
void Enqueue(float);
void Dequeue();
float Peek() const;
void Display() const;
private:
int front, rear;
float* items;
int maxQue;
};
QueueType::QueueType(int size) {
front = -1;
rear = -1;
maxQue = size;
items = new float[maxQue];
}
QueueType::~QueueType() {
delete[] items;
}
void QueueType::MakeEmpty() {
front = -1;
rear = -1;
}
bool QueueType::IsEmpty() const {
return (front == -1);
}
bool QueueType::IsFull() const {
return (rear == maxQue - 1);
}
void QueueType::Enqueue(float value) {
if (IsFull()) {
cout << "Queue is full." << endl;
return;
}
if (front == -1) {
front = 0;
}
rear++;
items[rear] = value;
}
void QueueType::Dequeue() {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
front++;
float QueueType::Peek() const {
return items[front];
}
void QueueType::Display() const {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue contents: ";
for (int i = front; i <= rear; i++) {
cout << items[i] << " ";
}
cout << endl;
}
int main() {
QueueType que(5);
float val;
for (int i = 0; i < 5; i++) {
cout << "Enter a character to insert: ";
cin >> val;
que.Enqueue(val);
cout << "Peek item: " << que.Peek() << endl;
}
que.Display();
if (!que.IsEmpty()) {
que.Dequeue();
}
que.Display();
return 0;
}
FOR CHAR
#include <iostream>
using namespace std;
class QueueType {
public:
QueueType(int);
~QueueType();
void MakeEmpty();
bool IsEmpty() const;
bool IsFull() const;
void Enqueue(char);
void Dequeue();
char Peek() const;
void Display() const;
private:
int front, rear;
char* items;
int maxQue;
};
QueueType::QueueType(int size) {
front = -1;
rear = -1;
maxQue = size;
items = new char[maxQue];
}
QueueType::~QueueType() {
delete[] items;
}
void QueueType::MakeEmpty() {
front = -1;
rear = -1;
}
bool QueueType::IsEmpty() const {
return (front == -1);
}
bool QueueType::IsFull() const {
return (rear == maxQue - 1);
}
void QueueType::Enqueue(char value) {
if (IsFull()) {
cout << "Queue is full." << endl;
return;
}
if (front == -1) {
front = 0;
}
rear++;
items[rear] = value;
}
void QueueType::Dequeue() {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
front++;
char QueueType::Peek() const {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return '\0';
}
return items[front];
}
void QueueType::Display() const {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue contents: ";
for (int i = front; i <= rear; i++) {
cout << items[i] << " ";
}
cout << endl;
}
int main() {
QueueType que(5);
char val;
for (int i = 0; i < 5; i++) {
cout << "Enter a character to insert: ";
cin >> val;
que.Enqueue(val);
cout << "Peek item: " << que.Peek() << endl;
}
que.Display();
if (!que.IsEmpty()) {
que.Dequeue();
}
que.Display();
return 0;
}
FOR STRING
#include <iostream>
using namespace std;
class QueueType {
public:
QueueType(int);
~QueueType();
void MakeEmpty();
bool IsEmpty() const;
bool IsFull() const;
void Enqueue(string);
void Dequeue();
string Peek() const;
void Display() const;
private:
int front, rear;
string* items;
int maxQue;
};
QueueType::QueueType(int size) {
front = -1;
rear = -1;
maxQue = size;
items = new string[maxQue];
}
QueueType::~QueueType() {
delete[] items;
}
void QueueType::MakeEmpty() {
front = -1;
rear = -1;
}
bool QueueType::IsEmpty() const {
return (front == -1);
}
bool QueueType::IsFull() const {
return (rear == maxQue - 1);
}
void QueueType::Enqueue(string value) {
if (IsFull()) {
cout << "Queue is full." << endl;
return;
}
if (front == -1) {
front = 0;
}
rear++;
items[rear] = value;
}
void QueueType::Dequeue() {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
front++;
string QueueType::Peek() const {
return items[front];
}
void QueueType::Display() const {
if (IsEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue contents: ";
for (int i = front; i <= rear; i++) {
cout << items[i] << " ";
}
cout << endl;
}
int main() {
QueueType que(5);
string val;
for (int i = 0; i < 5; i++) {
cout << "Enter a character to insert: ";
cin >> val;
que.Enqueue(val);
cout << "Peek item: " << que.Peek() << endl;
}
que.Display();
if (!que.IsEmpty()) {
que.Dequeue();
}
que.Display();
return 0;
}