Skip to main content

DSL E31

Data Structure  Lab :

Practical 31 :

Problem Statement :

A double-ended queue (deque) is a linear list in which additions and deletions may be made at either end. Obtain a data representation mapping a deque into a one dimensional array. Write C++ program to simulate deque with functions to add and delete elements from either end of the deque.

Check Out Code Here 👇
 // Author : SPPU CSE GURU  
   
 #include<iostream>  
   
 using namespace std;  
   
 class Queue{  
        
           int front,rear,max;  
           int Q[10];  
             
      public:  
           Queue(){  
                  
                front=0,rear=-1,max=10;  
           }  
             
      void InsertFront(int);  
      void InsertRear(int);  
      void DeleteFront();  
      void DeleteRear();  
      void Display();  
             
 };  
   
   
 void Queue::InsertFront(int data){  
      if(front==0 && rear==-1){  
           Q[front]=data;  
           rear++;  
      }  
      else{  
           if(front==0){  
                cout<<"Can't Add Elements at front try from other end"<<endl;  
           }  
           else{  
                front--;  
                Q[front]=data;  
           }  
      }  
 }  
   
   
 void Queue::InsertRear(int data){  
      if(rear<max-1){  
                rear++;  
                Q[rear]=data;  
      }       
      else{  
           cout<<"Can't Add Elements at End try from front"<<endl;  
      }  
        
 }  
   
   
 void Queue::DeleteFront(){  
      if(front==rear){  
           cout<<"Element "<<Q[front]<<" Deleted Successfully!"<<endl;  
           front=0;  
           rear=-1;  
      }  
      else if(front<rear){  
           cout<<"Element "<<Q[front]<<" Deleted Successfully!"<<endl;  
           front++;  
      }  
      else{  
           cout<<"Queue is Empty, Add Elements "<<endl;  
             
      }  
 }  
   
   
 void Queue::DeleteRear(){  
        
      if(rear==front){  
           cout<<"Element "<<Q[rear]<<" Deleted Successfully"<<endl;  
           front=0;  
           rear=-1;  
      }  
      else if(rear>front){  
           cout<<"Element "<<Q[rear]<<" Deleted Successfully"<<endl;  
           rear--;  
      }  
      else{  
           cout<<"Queue is Empty, Add Elements "<<endl;  
             
      }       
 }  
   
 void Queue::Display(){  
        
      if(front>rear || rear<front){  
           cout<<"Queue is Empty"<<endl;  
      }  
      else{  
      int temp;  
      temp=front;  
      cout<<"Queue is : ";  
      while(temp<=rear){  
           cout<<Q[temp]<<' ';  
           temp++;  
      }  
 }  
 }  
   
   
 int main(){  
        
      int c,data;  
      char res;  
      Queue obj;  
        
        
      do  
      {  
           cout<<"Enter Your Choice : "<<endl;  
           cout<<"1. Add Front \n2. Add End \n3. Delete Front \n4. Delete End "<<endl;  
           cin>>c;  
           switch(c){  
                  
                case 1: cout<<"Enter Data to Insert "<<endl;  
                          cin>>data;  
                          obj.InsertFront(data);  
                          obj.Display();  
                          break;  
                  
                case 2: cout<<"Enter Data to Insert "<<endl;  
                          cin>>data;  
                          obj.InsertRear(data);  
                          obj.Display();  
                          break;  
                  
                case 3: obj.DeleteFront();  
                          obj.Display();  
                          break;  
                  
                case 4: obj.DeleteRear();  
                          obj.Display();  
                          break;  
                default :  
                          cout<<"Invalid choice"<<endl;  
                          break;  
           }  
           cout<<"\nDo you want to continue (y or n)"<<endl;  
           cin>>res;  
      }while(res=='y');  
        
        
      return 0;  
 }  


Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. Do share with your friends.😊

Comments

Popular posts from this blog

Circle Triangle Pattern

  Group A   Practical 3 a   Problem Statement :   a) Write C++ program to draw the following pattern. Use DDA line and Bresenham‘s circle drawing algorithm. Apply the concept of encapsulation. Check Out Code Here  ðŸ‘‡ Output :  Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. If you like it, do share with your friends.😊

DSL A2

  Write a Python program to store marks scored in subject “Fundamental of Data Structure” by N students in the class. Write functions to compute following:  a) The average score of class  b) Highest score and lowest score of class  c) Count of students who were absent for the test  d) Display mark with highest frequency The Code for above problem is as follows : """ @author: SPPU SE GURU """ total=int(input ("Enter total no. of students in your class ")) pre=int(input("No. of students appeared for FDS exam : ")) U=[] for i in range (total): i=i+1 U.append(i) R=[] for i in range(pre): roll=int(input("Enter Roll no. of students present for test :- ")) R.append(roll) M=[] for i in range(pre): print("Enter Roll no. ",R[i],end=" ") marks=int(input("Marks:- ")) M.append(marks) print("********** Solutions Are as fo...

OOP 4

  Object Oriented Programming Group B - Practical : 4 Problem Statement :  Write a C++ program that creates an output file, writes information to it, closes the file, open it again as an input file and read the information from the file. Check Out Code Here  ðŸ‘‡ Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. If you like it, do share with your friends.😊