AIM:-Create and Perform Different Operations On Double-Ended Queues Using Linked List Implementation. CODE
AIM:-Create and Perform Different Operations On Double-Ended Queues Using Linked List Implementation. CODE
public:
Deque()
{
front = rear = NULL;
Size = 0;
}
void insertFront(int data);
void insertRear(int data);
void deleteFront();
void deleteRear();
int getFront();
int getRear();
int size();
bool isEmpty();
void erase();
};
bool Deque::isEmpty()
{
return (front == NULL);
}
int Deque::size()
{
return Size;
}
void Deque::insertFront(int data)
{
Node* newNode = Node::getnode(data);
if (newNode == NULL)
cout << "OverFlow\n";
else
{
if (front == NULL)
rear = front = newNode;
else
{
newNode->next = front;
front->prev = newNode;
front = newNode;
}
Size++;
}
}
void Deque::insertRear(int data)
{
Node* newNode = Node::getnode(data);
if (newNode == NULL)
cout << "OverFlow\n";
else
{
if (rear == NULL)
front = rear = newNode;
else
{
newNode->prev = rear;
rear->next = newNode;
rear = newNode;
}
Size++;
}
}
void Deque::deleteFront()
{
if (isEmpty())
cout << "UnderFlow\n";
else
{
Node* temp = front;
front = front->next;
if (front == NULL)
rear = NULL;
else
front->prev = NULL;
free(temp);
Size--;
}
}
void Deque::deleteRear()
{
if (isEmpty())
cout << "UnderFlow\n";
else
{
Node* temp = rear;
rear = rear->prev;
if (rear == NULL)
front = NULL;
else
rear->next = NULL;
free(temp);
Size--;
}
}
int Deque::getFront()
{
if (isEmpty())
return -1;
return front->data;
}
int Deque::getRear()
{
if (isEmpty())
return -1;
return rear->data;
}
void Deque::erase()
{
rear = NULL;
while (front != NULL)
{
Node* temp = front;
front = front->next;
free(temp);
}
Size = 0;
}
int main()
{
Deque dq;
cout << "Insert element '5' at rear end\n";
dq.insertRear(5);
dq.deleteRear();
cout << "After deleting rear element new rear"
<< " is: " << dq.getRear() << endl;
dq.deleteFront();
cout << "After deleting front element new "
<< "front is: " << dq.getFront() << endl;
return 0;
}
OUTPUT:-
AIM:- WAP TO CALCULATE FACTORIAL AND
TO COMPUTE THE FACTORS OF A GIVEN NO
(i) using recurion (ii) using iteration.
CODE:-
(i) Using recursion
#include<iostream>
using namespace std;
int main()
{
int n;
return 0;
}
int factorial(int n)
{
if(n > 1)
return n * factorial(n - 1);
else
return 1;
}
OUTPUT:-
OUTPUT:-