0% found this document useful (0 votes)
25 views

Lab6tasks 221086

Uploaded by

Muhammad Sami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Lab6tasks 221086

Uploaded by

Muhammad Sami
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

LAB TASKS (LAB - 6)

MUHAMMAD SAMI 221086


BSIT B III DATA STRUCTURES &
ALGORITHMS

QUEUE USING ARRAYS

ACTIVITY # 1
#include<iostream>
using namespace std;
const int MAX_SIZE = 100;
class Queue{
private:
int queue[MAX_SIZE];
int front;
int rear;
public:
Queue(){
front = -1;
rear = -1;
}
void enqueue(int item){
if(rear==(MAX_SIZE-1)){
cout << "Queue Overflow! Cannot enqueue item.\n";
return;
}
if(front == -1)
front = 0;

queue[++rear] = item;
cout << "Enqueued item: "<< item << endl;
}

int dequeue(){
if(front == -1 || front > rear){
cout << "Queue Underflow! Cannot dequeue item.\n";
return -1;
}
int dequeuedItem = queue[front++];
cout << "Dequeued item: " << dequeuedItem << endl;
if(front > rear){
front = -1;
rear = -1;
}
return dequeuedItem;
}
};

int main(){
Queue myQueue;

myQueue.enqueue(10);
myQueue.enqueue(20);
myQueue.enqueue(30);

myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();

return 0;
}
ACTIVITY # 2
#include<iostream>
using namespace std;
const int MAX_SIZE = 100;

class Queue{
private:
int queue[MAX_SIZE];
int front;
int rear;
public:
Queue(){
front = -1;
rear = -1;
}

void enqueue(int item){


if(isFull()){
cout << "Queue Overflow! Cannot enqueue item.\n";
return;
}
if(isEmpty())
front = 0;
rear = (rear + 1) % MAX_SIZE;
queue[rear] = item;
cout << " Enqueued item: " << item << endl;
}

int dequeue(){
if(isEmpty()){
cout << " Queue Underflow! Cannot dequeue item.\n";
return -1;
}
int dequeuedItem = queue[front];
if(front == rear){
front = -1;
rear = -1;
}
else
front = (front + 1) % MAX_SIZE;
cout << " Dequeued Item: " << dequeuedItem << endl;
return dequeuedItem;
}
bool isFull(){
return(front == (rear + 1) % MAX_SIZE);
}
bool isEmpty(){
return(front == -1 && rear == -1);
}
};
int main(){
Queue myQueue;

myQueue.enqueue(10);
myQueue.enqueue(20);
myQueue.enqueue(30);

myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();

return 0;

QUEUE USING LINKED LIST


ACTIVITY # 03
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* next;
Node(int value) {
data = value;
next = nullptr;
}
};
class Queue {
private:
Node* front;
Node* rear;
public:
Queue() {
front = nullptr;
rear = nullptr;
}
void enqueue(int item) {
Node* newNode = new Node(item);
if (front == nullptr) {
front = newNode;
rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
cout << "Enqueued item: " << item << endl;
}
int dequeue() {
if (front == nullptr) {
cout << "Queue Underflow! Cannot dequeue item.\n";
return -1;
}
Node* temp = front;
int dequeuedItem = temp->data;
front = front->next;
if (front == nullptr)
rear = nullptr;
delete temp;
cout << "Dequeued item: " << dequeuedItem << endl;
return dequeuedItem;
}
};
int main() {
Queue myQueue;
myQueue.enqueue(10);
myQueue.enqueue(20);
myQueue.enqueue(30);
myQueue.enqueue(34);
myQueue.dequeue();
myQueue.enqueue(90);
myQueue.dequeue();
myQueue.enqueue(50);
myQueue.dequeue();
myQueue.dequeue();
return 0;
}
ACTIVITY # 04
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* next;
Node(int value) {
data = value;
next = nullptr;
}
};
class Queue {
private:
Node* front;
Node* rear;
public:
Queue() {
front = nullptr;
rear = nullptr;
}
void enqueue(int item) {
Node* newNode = new Node(item);
if (isEmpty()) {
front = newNode;
rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
std::cout << " Enqueued item: " << item << std::endl;
}
int dequeue() {
if (isEmpty()) {
std::cout << " Queue Underflow! Cannot dequeue item.\n";
return -1;
}
Node* temp = front;
int dequeuedItem = temp->data;
front = front->next;
if (front == nullptr)
rear = nullptr;
delete temp;
cout << " Dequeued item: " << dequeuedItem << endl;
return dequeuedItem;
}
bool isEmpty() {
return (front == nullptr);
}
};

int main() {
Queue myQueue;
myQueue.enqueue(10);
myQueue.enqueue(20);
myQueue.enqueue(30);
myQueue.enqueue(60);
myQueue.dequeue();
myQueue.enqueue(56);
myQueue.dequeue();
myQueue.enqueue(35);
myQueue.dequeue();
myQueue.enqueue(60);
myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();
return 0;
}
CIRCULAR QUEUE
#include <iostream>
using namespace std;
const int MAX_SIZE = 5;
int queue[MAX_SIZE];
int front = -1, rear = -1;
bool isEmpty() {
return front == -1;
}
bool isFull() {
return (front == 0 && rear == MAX_SIZE - 1) || (rear == (front - 1) %
(MAX_SIZE - 1));
}
void enqueue(int item) {
if (isFull()) {
cout << " \n Queue is full. Cannot enqueue." << endl;
}
else {
if (front == -1) {
front = rear = 0;
}
else {
rear = (rear + 1) % MAX_SIZE;
}
queue[rear] = item;
cout << " " << item << " enqueued to the queue." << endl;
}
}
void dequeue() {
if (isEmpty()) {
cout << "\n Queue is empty. Cannot dequeue." << endl;
}
else {
int item = queue[front];
if (front == rear) {
front = rear = -1;
}
else {
front = (front + 1) % MAX_SIZE;
}
cout << " " << item << " dequeued from the queue." << endl;
}
}
void display() {
if (isEmpty()) {
cout << " \n Queue is empty." << endl;
}
else {
int i = front;
cout << "\n Queue elements: ";
do {
cout << queue[i] << " ";
i = (i + 1) % MAX_SIZE;
} while (i != (rear + 1) % MAX_SIZE);
cout << endl;
}
}

int main() {
enqueue(1);
enqueue(2);
enqueue(3);
display();
dequeue();
dequeue();
enqueue(10);
display();
enqueue(5);
dequeue();
display();
dequeue();
dequeue();
display();
return 0;
}

You might also like