
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
C++ Program to Implement Dequeue
Dequeue or Double Ended Queue is a generalized version of Queue data structure that allows insert and delete at both ends.
Some basic operations of dequeue are −
insert_at_beg(): inserts an item at the front of Dequeue.
insert_at_end(): inserts an item at the rear of Dequeue.
delete_fr_beg(): Deletes an item from front of Dequeue.
delete_fr_rear(): Deletes an item from rear of Dequeue.
Following is a C++ program to implement Dequeue
Algorithm
Begin Declare a class dequeue to declare front f and rear r and following functions: function insert_at_beg(int) to insert item at front: If queue is not completely filled up, insert element at the front and update front and rear Otherwise print overflow. function insert_at_end(int) to insert item at rear: If queue is not completely filled up, insert element at the rear and update front and rear Otherwise print overflow. function delete_fr_beg() to delete item from front: If queue is empty, print underflow otherwise delete the front element and update front. function delete_fr_end() to delete item from end: If queue is empty, print underflow otherwise delete the rear element and update rear. End
Example Code
#include<iostream> using namespace std; #define SIZE 10 class dequeue { int a[20],f,r; public: dequeue(); void insert_at_beg(int); void insert_at_end(int); void delete_fr_front(); void delete_fr_rear(); void show(); }; dequeue::dequeue() { f=-1; r=-1; } void dequeue::insert_at_end(int i) { if(r>=SIZE-1) { cout<<"\n insertion is not possible, overflow!!!!"; } else { if(f==-1) { f++; r++; } else { r=r+1; } a[r]=i; cout<<"\nInserted item is"<<a[r]; } } void dequeue::insert_at_beg(int i) { if(f==-1) { f=0; a[++r]=i; cout<<"\n inserted element is:"<<i; } else if(f!=0) { a[--f]=i; cout<<"\n inserted element is:"<<i; } else { cout<<"\n insertion is not possible, overflow!!!"; } } void dequeue::delete_fr_front() { if(f==-1) { cout<<"deletion is not possible::dequeue is empty"; return; } else { cout<<"the deleted element is:"<<a[f]; if(f==r) { f=r=-1; return; } else f=f+1; } } void dequeue::delete_fr_rear() { if(f==-1) { cout<<"deletion is not possible::dequeue is empty"; return; } else { cout<<"the deleted element is:"<<a[r]; if(f==r) { f=r=-1; } else r=r-1; } } void dequeue::show() { if(f==-1) { cout<<"Dequeue is empty"; } else { for(int i=f;i<=r;i++) { cout<<a[i]<<" "; } } } int main() { int c,i; dequeue d; Do//perform switch opeartion { cout<<"\n 1.insert at beginning"; cout<<"\n 2.insert at end"; cout<<"\n 3.show"; cout<<"\n 4.deletion from front"; cout<<"\n 5.deletion from rear"; cout<<"\n 6.exit"; cout<<"\n enter your choice:"; cin>>c; switch(c) { case 1: cout<<"enter the element to be inserted"; cin>>i; d.insert_at_beg(i); break; case 2: cout<<"enter the element to be inserted"; cin>>i; d.insert_at_end(i); break; case 3: d.show(); break; case 4: d.delete_fr_front(); break; case 5: d.delete_fr_rear(); break; case 6: exit(1); break; default: cout<<"invalid choice"; break; } } while(c!=7); }
Output
1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:4 deletion is not possible::dequeue is empty 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:5 deletion is not possible::dequeue is empty 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:1 enter the element to be inserted7 inserted element is:7 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:1 enter the element to be inserted6 insertion is not possible, overflow!!! 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:1 enter the element to be inserted4 insertion is not possible, overflow!!! 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:2 enter the element to be inserted6 Inserted item is6 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:2 enter the element to be inserted4 Inserted item is4 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:3 7 6 4 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:4 the deleted element is:7 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:5 the deleted element is:4 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:1 enter the element to be inserted7 inserted element is:7 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:3 7 6 1.insert at beginning 2.insert at end 3.show 4.deletion from front 5.deletion from rear 6.exit enter your choice:6
- Related Articles
- How to implement enqueue and dequeue using only two stacks in JavaScript?
- jQuery dequeue() with Examples
- Dequeue and Priority Queue in C++
- C++ Program to Implement Vector
- C# program to implement FizzBuzz
- C++ Program to Implement Trie
- C++ Program to Implement Stack
- C++ Program to Implement Treap
- C++ Program to Implement Queue
- Java Program to Implement LinkedList
- C program to implement CHECKSUM
- Java program to implement bubble sort
- Java program to implement selection sort
- Java program to implement insertion sort
- Java program to implement binary search

Advertisements