This C++ Program demonstrates operations on Doubly Ended Queue.
Here is source code of the C++ Program to demonstrate Doubly Ended Queue operations. The C++ program is successfully compiled and run on a Linux system. The program output is also shown below.
/** C++ Program To Implement Doubly Ended Queue*/#include <iostream>#include <cstdlib>using namespace std;
/** Node Declaration*/struct node{int info;
node *next;
node *prev;
}*head, *tail;
/** Class Declaration*/class dqueue{public:
int top1, top2;
void insert();
void del();
void display();
dqueue()
{top1 = 0;
top2 = 0;
head = NULL;
tail = NULL;
}};
/** Main: Contains Menu*/int main()
{int choice;
dqueue dl;while (1)
{cout<<"\n-------------"<<endl;
cout<<"Operations on Deque"<<endl;
cout<<"\n-------------"<<endl;
cout<<"1.Insert Element into the Deque"<<endl;
cout<<"2.Delete Element from the Deque"<<endl;
cout<<"3.Traverse the Deque"<<endl;
cout<<"4.Quit"<<endl;
cout<<"Enter your Choice: ";
cin>>choice;
cout<<endl;
switch(choice)
{case 1:
dl.insert();
break;
case 2:
dl.del();
break;
case 3:
dl.display();
break;
case 4:
exit(1);
break;
default:
cout<<"Wrong Choice"<<endl;
}}return 0;
}/** Insert Element in Doubly Ended Queue*/void dqueue::insert()
{struct node *temp;
int ch, value;
if (top1 + top2 >= 50)
{cout<<"Dequeue Overflow"<<endl;
return;
}if (top1 + top2 == 0)
{cout<<"Enter the value to be inserted: ";
cin>>value;
head = new (struct node);
head->info = value;
head->next = NULL;
head->prev = NULL;
tail = head;
top1++;
cout<<"Element Inserted into empty deque"<<endl;
}else{while (1)
{cout<<endl;
cout<<"1.Insert Element at first"<<endl;
cout<<"2.Insert Element at last"<<endl;
cout<<"3.Exit"<<endl;
cout<<endl;
cout<<"Enter Your Choice: ";
cin>>ch;
cout<<endl;
switch(ch)
{case 1:
cout<<"Enter the value to be inserted: ";
cin>>value;
temp = new (struct node);
temp->info = value;
temp->next = head;
temp->prev = NULL;
head->prev = temp;
head = temp;
top1++;
break;
case 2:
cout<<"Enter the value to be inserted: ";
cin>>value;
temp = new (struct node);
temp->info = value;
temp->next = NULL;
temp->prev = tail;
tail->next = temp;
tail = temp;
top2++;
break;
case 3:
return;
break;
default:
cout<<"Wrong Choice"<<endl;
}}}}/** Delete Element in Doubly Ended Queue*/void dqueue::del()
{if (top1 + top2 <= 0)
{cout<<"Deque Underflow"<<endl;
return;
}int ch;
while (1)
{cout<<endl;
cout<<"1.Delete Element at first"<<endl;
cout<<"2.Delete Element at last"<<endl;
cout<<"3.Exit"<<endl;
cout<<endl;
cout<<"Enter Your Choice: ";
cin>>ch;
cout<<endl;
switch(ch)
{case 1:
head = head->next;
head->prev = NULL;
top1--;
break;
case 2:
tail = tail->prev;
tail->next = NULL;
top2--;
break;
case 3:
return;
break;
default:
cout<<"Wrong Choice"<<endl;
}}}/** Display Doubly Ended Queue*/void dqueue::display()
{struct node *temp;
int ch;
if (top1 + top2 <= 0)
{cout<<"Deque Underflow"<<endl;
return;
}while (1)
{cout<<endl;
cout<<"1.Display Deque from Beginning"<<endl;
cout<<"2.Display Deque from End"<<endl;
cout<<"3.Exit"<<endl;
cout<<endl;
cout<<"Enter Your Choice: ";
cin>>ch;
cout<<endl;
switch (ch)
{case 1:
temp = head;
cout<<"Deque from Beginning:"<<endl;
while (temp != NULL)
{cout<<temp->info<<" ";
temp = temp->next;
}cout<<endl;
break;
case 2:
cout<<"Deque from End:"<<endl;
temp = tail;
while (temp != NULL)
{cout<<temp->info<<" ";
temp = temp->prev;
}temp = tail;
cout<<endl;
break;
case 3:
return;
break;
default:
cout<<"Wrong Choice"<<endl;
}}}
$ g++ deque.cpp $ a.out ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 Deque Underflow ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 2 Deque Underflow ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 1 Enter the value to be inserted: 100 Element Inserted into empty deque ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 1 Deque from Beginning: 100 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 2 Deque from End: 100 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 1 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 1 Enter the value to be inserted: 200 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 2 Enter the value to be inserted: 150 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 1 Deque from Beginning: 200 100 150 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 2 Deque from End: 150 100 200 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 2 1.Delete Element at first 2.Delete Element at last 3.Exit Enter Your Choice: 1 1.Delete Element at first 2.Delete Element at last 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 1 Deque from Beginning: 100 150 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 2 Deque from End: 150 100 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 1 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 1 Enter the value to be inserted: 1010 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 2 Enter the value to be inserted: 1111 1.Insert Element at first 2.Insert Element at last 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 1 Deque from Beginning: 1010 100 150 1111 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 2 Deque from End: 1111 150 100 1010 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 2 1.Delete Element at first 2.Delete Element at last 3.Exit Enter Your Choice: 2 1.Delete Element at first 2.Delete Element at last 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 3 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 1 Deque from Beginning: 1010 100 150 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 2 Deque from End: 150 100 1010 1.Display Deque from Beginning 2.Display Deque from End 3.Exit Enter Your Choice: 3 ------------- Operations on Deque ------------- 1.Insert Element into the Deque 2.Delete Element from the Deque 3.Traverse the Deque 4.Quit Enter your Choice: 4 ------------------ (program exited with code: 1) Press return to continue
Sanfoundry Global Education & Learning Series – 1000 C++ Programs.
advertisement
If you wish to look at all C++ Programming examples, go to C++ Programs.
Related Posts:
- Check Data Structure Books
- Check Computer Science Books
- Practice Computer Science MCQs
- Check Programming Books
- Practice Design & Analysis of Algorithms MCQ