You are on page 1of 45

TASK 1:

SOURCE CODE:
#include<iostream>

using namespace std;

struct node

int data;

node* next;

};

class Queue

public:

node* rear,*front;

bool check = false;

Queue()

rear = NULL;

front = NULL;

void enqueue(int a)

node* newnode = new node;

newnode->data = a;

newnode->next = NULL;

if (front==NULL)
{

front = newnode;

else

rear->next = newnode;

rear = newnode;

int dequeue()

if (IsEmpty())

cout << "Queue is EMPTY :(\n";

return 0;

else

node* ptr;

ptr = front;

int dat = front->data;

front = front->next;

ptr = NULL;

delete ptr;

return dat;
}

bool IsEmpty()

if (front == NULL)

return true;

else if (front != NULL)

return false;

Queue reverse_Queue(Queue a)

int store;

if (a.IsEmpty())

return a;

else

store = a.dequeue();

a=reverse_Queue(a);

a.enqueue(store);
a.check = true;

return a;

};

int main()

Queue a;

int data,option = 0;

while (option!=5)

cout << "1-Enqueue\n2-Dequeue\n3-IsEmpty\n4-Reverse The Queue\n5-Exit\n";

cin >> option;

if (option==1)

cout << "Enter Data That You Want to Enqueue in Queue : ";

cin >> data;

a.enqueue(data);

else if (option == 2)

if (a.IsEmpty())

data = a.dequeue();

}
else

data = a.dequeue();

cout <<" "<< data << " : Dequeued From Queue\n";

else if (option == 3)

if (a.IsEmpty())

cout << "Queue Is Empty :(\n";

else

cout << "Queue Is Not Empty :)\n";

else if (option == 4)

if (a.IsEmpty())

cout << "Queue is Empty :(\n";

else

{
a = a.reverse_Queue(a);

if (a.check==true)

cout << "Queue Has Been Reversed Successfully :)\n";

system("pause");

return 0;

}
CONSOLE SCREEN SHOT:
TASK 2:
SOURCE CODE:
#include<iostream>

using namespace std;

struct node

int data;

node* next;

};

class Queue

public:

node* rear, * front;

int count=0;

Queue()

rear = NULL;

front = NULL;

void enqueue(int a)

count++;

node* newnode = new node;

newnode->data = a;

newnode->next = NULL;

if (front == NULL)

{
front = newnode;

else

rear->next = newnode;

rear = newnode;

int dequeue()

if (IsEmpty())

cout << "Queue is EMPTY :(\n";

return 0;

else

count--;

node* ptr;

ptr = front;

int dat = front->data;

front = front->next;

ptr->next = NULL;

free(ptr);

return dat;
}

void Display()

node* ptr = front;

if (ptr==NULL)

cout << "There is no element in the Queue :(\n";

return;

while (ptr != NULL)

cout << ptr->data << "->";

ptr = ptr->next;

cout << endl;

int Largest()

int max = 0;

int i = 0;

int* array;

int size = count;

array = new int[count];

while (!IsEmpty())
{

array[i] = dequeue();

if (array[i]>max)

max = array[i];

i++;

for (int i = 0; i <size; i++)

enqueue(array[i]);

return max;

int Smallest()

int min=front->data;

int i = 0;

int* array;

int size = count;

array = new int[count];

while (!IsEmpty())

array[i] = dequeue();

if (array[i] < min)


{

min = array[i];

i++;

for (int i = 0; i < size; i++)

enqueue(array[i]);

return min;

int get_Size()

return count;

bool IsEmpty()

if (front == NULL)

return true;

else if (front != NULL)

return false;

}
}

void Perfect()

int i = 0;

int* array;

int size = count;

array = new int[count];

while (!IsEmpty())

array[i] = dequeue();

if (IsPerfect(array[i]))

cout << array[i] << " Is A Perfect Number in Queue\n";

i++;

for (int i = 0; i < size; i++)

enqueue(array[i]);

bool IsPerfect(int data)

int DivRes =0, SumOfDivRes = 0;


for (int i = 1; i < data; i++)

DivRes = data % i;

if (DivRes == 0)

SumOfDivRes = SumOfDivRes + i;

if (SumOfDivRes == data)

return true;

else

return false;

void Sort()

int temp = 0;

int i = 0;

int* array;

int size = count;

array = new int[count];


while (!IsEmpty())

array[i] = dequeue();

i++;

for (int i = 0; i < size; i++)

for (int j = i + 1; j < size; j++)

if (array[j] < array[i])

temp = array[i];

array[i] = array[j];

array[j] = temp;

for (int i = 0; i < size; i++)

enqueue(array[i]);

};

int main()

{
Queue a;

int data, option = 0;

while (option != 9)

cout << "1-Enqueue\n2-Dequeue\n3-Size\n4-Display\n5-Largest\n6-Smallest\n7-Perfect


Numbers\n8-Sort\n9-Exit\n";

cin >> option;

if (option == 1)

cout << "Enter Data That You Want to Enqueue in Queue : ";

cin >> data;

a.enqueue(data);

else if (option == 2)

if (a.IsEmpty())

data = a.dequeue();

else

data = a.dequeue();

cout << data << " : Dequeued From Queue\n";

else if (option == 3)
{

cout <<"Size of Queue is : "<< a.get_Size()<<endl;

else if (option == 4)

a.Display();

else if (option == 5)

cout<<"Largest Element in Queue is : "<<a.Largest()<<endl;

else if (option == 6)

cout << "Smallest Element in Queue is : " << a.Smallest() << endl;

else if (option == 7)

a.Perfect();

else if (option == 8)

a.Sort();

cout << "After Sorting the Queue :) \n";

a.Display();
}

else

exit(1);

system("pause");

return 0;

}
CONSOLE SCREEN SHOT:
TASK 3:
SOURCE CODE:
#include<iostream>
using namespace std;

struct node

int data;

node* Next;

};

class Link

public:

node* front, * rear;

public:

Link()

front = rear = NULL;

void Enque(int a)

node* temp = new node;

temp->data = a;

temp->Next = front;

if (front == NULL)

front = rear = temp;

else
{

rear->Next = temp;

rear = temp;

rear->Next = front;

void Deque()

node* ptr = front;

if (ptr == NULL)

cout << "List is empty";

return;

//when both head and rear are at same position it means its the only node in queue

else if(front==rear)

front = rear = NULL;

delete front;

delete rear;

else

rear->Next=front->Next;

front = front->Next;
ptr = NULL;

delete ptr;

bool IsEmpty()

if (front==NULL)

return true;

else

return false;

void Display()

node* ptr = front;

if (ptr==NULL)

cout << "There is no element in the Queue :(\n";

return;

while (ptr->Next != front)

{
cout << ptr->data << "->";

ptr = ptr->Next;

cout << ptr->data;

cout << endl;

};

int main()

int data,option=0;

Link a;

while (option != 5)

cout << "1-Enque\n2-Deque\n3-IsEmpty\n4-Display\n5-Exit\n";

cin >> option;

if (option == 1)

system("cls");

cout << "Enter Data That You Want to Enque : ";

cin >> data;

a.Enque(data);

else if (option == 2)

system("cls");
if (a.IsEmpty())

cout << "Queue is Empty :( so can't deque :(\n";

else

a.Deque();

cout << "After Dequeing :\n";

a.Display();

else if (option == 3)

system("cls");

if (a.IsEmpty())

cout << "Queue is Empty :(\n";

else

cout << "Queue is Not Empty :)\n";

else if (option == 4)

{
system("cls");

cout << "Displaying Elements in the Queue :)\n";

a.Display();

else

exit(1);

system("pause");

return 0;

CONSOLE SCREEN SHOT:


TASK 4:
SOURCE CODE:
#include<iostream>

#include<stack>

using namespace std;

class Queue

public:

stack<int>a;

stack<int>b;

void Enque(int dat)

int temp;

while (!a.empty() )

temp = a.top();

a.pop();

b.push(temp);

a.push(dat);

while (!b.empty())

int temp = b.top();

b.pop();

a.push(temp);
}

int deque()

int temp;

if (a.empty())

cout << "Stack is Empty :( \n";

return 0;

temp = a.top();

a.pop();

return temp;

bool Isempty()

if (a.empty())

return true;

else

return false;

}
};

int main()

Queue a;

int data, option = 0;

while (option != 4)

cout << "1-Enque\n2-Deque\n3-IsEmpty\n4-Exit\n";

cin >> option;

if (option == 1)

cout << "Enter Data That You Want to Enque : ";

cin >> data;

a.Enque(data);

else if (option == 2)

if (a.Isempty())

cout << "Queue Is Empty :(\n";

else

cout << a.deque() << " Dequeued From Queue :)\n";

}
}

else if(option==3)

if (a.Isempty())

cout << "Queue IS Empty :(\n";

else

cout << "Queue IS Not Empty :)\n";

system("pause");

return 0;

}
CONSOLE SCREEN SHOT:
TASK 5:
SOURCE CODE:
#include<iostream>

using namespace std;

struct node

int data;

int priority;

node* next;

};

class Queue

public:

node* rear, * front;

int count=0;
Queue()

rear = NULL;

front = NULL;

void enqueue(int a,int p)

count++;

node* newnode = new node;

newnode->data = a;

newnode->priority = p;

newnode->next = NULL;

node* ptr = front;

if (front==NULL || front->priority > p)

newnode->next = front;

front = newnode;

else

while (ptr->next != NULL && ptr->next->priority < p)

ptr = ptr->next;

newnode->next = ptr->next;
ptr->next = newnode;

bool IsEmpty()

if (front==NULL)

return true;

else

return false;

int dequeue()

if (IsEmpty())

cout << "Queue is EMPTY :(\n";

return 0;

else

count--;
node* ptr;

ptr = front;

int dat = front->data;

front = front->next;

ptr = NULL;

free(ptr);

return dat;

void Display()

node* ptr = front;

if (ptr==NULL)

cout << "There is no element in the Queue :(\n";

return;

while (ptr != NULL)

cout << ptr->data << "->";

ptr = ptr->next;

cout << endl;

};
class Stack

public:

Queue obj;

node* top;

Stack()

top = NULL;

void push(int a,int n)

obj.enqueue(a,1);

int pop()

int temp;

if (IsEmpty())

cout << "Stack is EMPTY :(\n";

return 0;

else

temp = obj.front->data;

obj.dequeue();
}

return temp;

bool IsEmpty()

if (obj.IsEmpty())

return true;

else

return false;

};

int main()

Stack a;

int data, option = 0;

while (option != 4)

cout << "1-Enque\n2-Deque\n3-IsEmpty\n4-Exit\n";

cin >> option;

if (option == 1)
{

cout << "Enter Data That You Want to Enque : ";

cin >> data;

a.push(data,1);

else if (option == 2)

if (a.IsEmpty())

cout << "Queue Is Empty :(\n";

else

cout << a.pop() << " Dequeued From Queue :)\n";

else if(option==3)

if (a.IsEmpty())

cout << "Queue IS Empty :(\n";

else

cout << "Queue IS Not Empty :)\n";


}

system("pause");

return 0;

}
CONSOLE SCREEN SHOT:
TASK 6:
SOURCE CODE:

CONSOLE SCREEN SHOT:

You might also like