Muneeb Khokhar (051) Data Structure Lab Assign
Muneeb Khokhar (051) Data Structure Lab Assign
SUBMITTED TO:
Ma’am Ayesha Mubashira
SUBMITTED BY:
Malik Muneeb Rasheed Khokhar
ROLL NO:
SP21-BCS-051
COMSATS UNIVERSITY ISLAMABAD
VEHARI CAMPUS
CODE # 01
Queue Using Stack
#include <bits/stdc++.h>
using namespace std;
struct Queue {
stack<int> s1, s2;
s2.pop();
}
}
int deQueue()
{
// Return top of s1
int x = s1.top();
s1.pop();
return x;
}
};
int main()
{
Queue q;
q.enQueue(1);
q.enQueue(2);
q.enQueue(3);
cout << q.deQueue() << '\n';
cout << q.deQueue() << '\n';
cout << q.deQueue() << '\n';
return 0;
}
Code # 02
Stack using Queue
#include <bits/stdc++.h>
using namespace std;
class Stack {
}
int top()
{
if (q1.empty())
return -1;
return q1.front();
}
int size() { return q1.size(); }
};
int main()
{
Stack s;
s.push(1);
s.push(2);
s.push(3);
cout << "current size: " << s.size() << endl;
cout << s.top() << endl;
s.pop();
cout << s.top() << endl;
s.pop();
cout << s.top() << endl;
cout << "current size: " << s.size() << endl;
return 0;
}
CODE # 03
QUEUE USING LINKED LIST
#include <iostream>
using namespace std;
class Node
{
public:
int data;
Node* next;
Node(int d)
{
this->data = d;
this->next = NULL;
}
};
int main()
{
Node* head;
head = NULL;
int ch;
while(true)
{
cout<<"1) Insert element to queue"<<endl;
cout<<"2) Delete element from queue"<<endl;
cout<<"3) Count element from queue"<<endl;
cout<<"4) Front element from queue"<<endl;
cout<<"5) Back element from queue"<<endl;
cout<<"6) Size of queue"<<endl;
cout<<"7) Check Empty"<<endl;
cout<<"8) Display Queue"<<endl;
cout<<"9) Exit"<<endl;
cout<<endl;
cout<<"Enter your choice : ";
cin>>ch;
switch (ch)
{
case 1: push(head);
break;
case 2: pop(head);
break;
case 3: count(head);
break;
case 4: frnt(head);
break;
case 5: bck(head);
break;
case 6: size(head);
break;
case 7: empty(head);
break;
case 8: Display(head);
break;
case 9: cout<<"Exit"<<endl;
break;
default: cout<<"Invalid choice"<<endl;
}
if(ch == 9)
{
break;
}
else
{
cout<<endl;
continue;
}
}
return 0;
}
CODE # 04
Queue Using Array
#include <iostream>
using namespace std;
int n=100, queue[100], front = - 1, rear = - 1;
void push()
{
int val;
if (rear == n - 1)
cout<<"Queue Overflow"<<endl;
else
{
front = 0;
cout<<"Insert the element in queue : ";
cin>>val;
rear++;
queue[rear] = val;
}
}
void pop()
{
if (front == - 1 || front > rear)
{
cout<<"Queue Underflow "<<endl;
return ;
}
else
{
cout<<"Element deleted from queue is : "<< queue[front] <<endl;
front++;
if(front>rear)
{
front = -1;
rear = -1;
}
}
}
void count()
{
int val, count;
count = 0;
if (front == - 1 || front > rear)
{
cout<<"Queue is Empty "<<endl;
return ;
}
else
{
cout<<"Enter value to count in queue: ";
cin>>val;
for(int i=front; i<=rear; i++)
{
if(queue[i] == val)
{
count++;
}
else
{
continue;
}
}
cout<<"Total numbers of "<<val<<" in Queue are: "<<count<<endl;
}
}
void frnt()
{
if (front == - 1 || front > rear)
{
cout<<"Queue is Empty "<<endl;
return ;
}
else
{
cout<<"Value of front is: "<<queue[front]<<endl;
}
}
void bck()
{
if (front == - 1 || front > rear)
{
cout<<"Queue is Empty "<<endl;
return ;
}
else
{
cout<<"Value of back is: "<<queue[rear]<<endl;
}
}
void size()
{
if (front == - 1 || front > rear)
{
cout<<"Queue is Empty "<<endl;
return ;
}
else
{
int size;
for(int i=front; i<=rear; i++)
{
size++;
}
cout<<"Size of queue is: "<<size<<endl;
}
}
void empty()
{
if (front == - 1 || front > rear)
{
cout<<"True"<<endl;
return ;
}
else
{
cout<<"False"<<endl;
}
}
void Display()
{
if (front == - 1)
cout<<"Queue is empty"<<endl;
else
{
cout<<"Queue elements are : ";
for (int i = front; i <= rear; i++)
cout<<queue[i]<<" ";
cout<<endl;
}
}
int main()
{
int ch;
while(true)
{
cout<<endl;
cout<<"1) Insert element to queue"<<endl;
cout<<"2) Delete element from queue"<<endl;
cout<<"3) Count element from queue"<<endl;
cout<<"4) Front element from queue"<<endl;
cout<<"5) Back element from queue"<<endl;
cout<<"6) Size of queue"<<endl;
cout<<"7) Check Empty"<<endl;
cout<<"8) Display Queue"<<endl;
cout<<"9) Exit"<<endl;
cout<<endl;
cout<<"Enter your choice : ";
cin>>ch;
switch (ch)
{
case 1: push();
break;
case 2: pop();
break;
case 3: count();
break;
case 4: frnt();
break;
case 5: bck();
break;
case 6: size();
break;
case 7: empty();
break;
case 8: Display();
break;
case 9: cout<<"Exit"<<endl;
break;
default: cout<<"Invalid choice"<<endl;
}
if(ch == 9)
{
break;
}
else
{
continue;
}
}
return 0;
}