Assignment 4
Assignment 4
PROBLEM 1:
CODE:
#include<iostream>
class Node
public:
Node<T>* next;
Node<T>* prev;
T data;
};
class Deque
private:
Node<T>* head;
Node<T>* rear;
public:
Deque();
void removeFront();
void remove();
void Display();
T getFront()
{return head->data;}
T getRear()
{return rear->data;}
};
template<class T>
Deque<T>::Deque()
head=NULL;
rear=NULL;
template<class T>
void Deque<T>::insert(T x)
newNode->data=x;
if(!head)
head=newNode;
rear=newNode;
else
newNode->next=head;
head->prev=newNode;
head=newNode;
head->prev=rear;
rear->next=head;
template<class T>
void Deque<T>::inject(T x)
if(!head)
head=newNode;
rear=newNode;
else
newNode->data=x;
newNode->prev=rear;
rear->next=newNode;
rear=newNode;
rear->next=head;
head->prev=rear;
template<class T>
void Deque<T>::remove()
Node<T>* temp=rear;
rear=rear->prev;
head->prev=rear;
delete temp;
template<class T>
void Deque<T>::removeFront()
Node<T>* temp=head;
head=head->next;
rear->next=head;
delete temp;
}
template<class T>
void Deque<T>::Display()
Node<T>* curr=head;
do
cout<<curr->data<<" ";
curr=curr->next;
}while(curr!=head);
cout<<endl;
int main()
Deque<double>dq;
dq.insert(1.655);
dq.inject(534.65);
dq.insert(43.43);
dq.inject(76.48);
dq.Display();
dq.remove();
dq.removeFront();
cout<<"The deque after deletion the front and rear elements is: ";
dq.Display();
return 0;}
OUTPUT:
PROBLEM 2:
CODE:
#include <iostream>
#include <random>
random_device rd;
class Queue {
private:
T items[MAX_QUEUE];
public:
Queue()
return count == 0;
}
void enqueue(const T& obj) { //insert it backwards
if (isEmpty()) {
items[front] = obj;
count++;
else if (!isFull()) {
items[back] = obj;
count++;
void deleteAt(int i) {
count--;
T& getFront() {
return items[front];
T& getRear() {
return items[back];
void dequeue() {
if (!isEmpty()) {
count--;
void display() {
for (int curr = front, ctr = count; ctr > 0; curr = (curr + 1) % MAX_QUEUE, ctr--) {
};
int main() {
Queue<int> queue;
int k, i = 0;
cin >> k;
queue.display();
while (size != 1)
queue.deleteAt(i);
queue.display();
size--;
OUTPUT: