Skip to main content

Queue using C++(Struct)

 Q). Implement Queue using struct in c++


=> Prog :

#include<iostream>

#include<iomanip>

using namespace std;

#define MAX 5



typedef struct queue_type{


  int arr[MAX]={0,0,0,0,0};

  int frontSide;

  int rearSide;


}node;



void insertVal(int item,node * ptr);


int deleteVal(node *ptr);


void display(node *ptr);


int main(){


char ch;

int choice,item;

node queueNode;


queueNode.frontSide=-1;

queueNode.rearSide=-1;


do{


    cout<<"\n************* please press below key for that option *************\n\n";

    cout<<"1.Insert Value in Queue \n";

    cout<<"2.Delete Value in Queue \n";

    cout<<"3.Display \n";

    cout<<"choice : ";

    cin>>choice;


    switch(choice){

     case 1: cout<<"Enter the data : ";

             cin>>item;

             insertVal(item,&queueNode);

             break;


     case 2: item=deleteVal(&queueNode);

             cout<<"Pop element : "<<item<<endl;

             break;


      case 3: display(&queueNode);

              break;


      default : cout<<"Wrong option selected\n";


    }


    cout<<"\n\nDo you want to run again (y/n) : ";

    cin>>ch;


}while(ch=='y');



}



void insertVal(int item,node * ptr){


if((ptr->frontSide==0 && ptr->rearSide==MAX-1) || (ptr->frontSide==ptr->rearSide+1)){


cout<<"Queue is Overflow\n";


}else if(ptr->frontSide==-1){


  ptr->frontSide=0;

  ptr->rearSide=0;


}else if(ptr->rearSide==MAX-1){


  ptr->rearSide=0;


}else{


 ptr->rearSide=ptr->rearSide+1;


}

 ptr->arr[ptr->rearSide]=item;


}


int deleteVal(node *ptr){


int item;


if(ptr->frontSide==-1){

  cout<<"Queue is underflow\n";

}else{


item=ptr->arr[ptr->frontSide];

ptr->arr[ptr->frontSide]=0;

if(ptr->frontSide==ptr->rearSide){

    ptr->frontSide=-1;

    ptr->rearSide=-1;

}else if(ptr->frontSide==MAX-1){

    ptr->frontSide=0;

}else{

   ptr->frontSide++;

}

}


return item;

}


void display(node *ptr){


cout<<"\n\n ********************* Queue Status ******************** \n\n";


        cout<<setw(8)<<"_";


        for(int i=1;i<=6;i++){

              cout<<setw(8)<<"________";

        }


        cout<<endl<<endl;


        cout<<setw(8)<<" ";

        for(int i=1;i<=5;i++){


           if(i==5){


           if(ptr->arr[i-1]==0){

            cout<<setw(4)<<" ";

           }else{

             cout<<setw(4)<<" "<<ptr->arr[i-1];

           }


           }else{

             if(ptr->arr[i-1]==0){

                cout<<setw(4)<<"  "<<setw(4)<<"|";

             }else

             {

               cout<<setw(4)<<" "<<ptr->arr[i-1]<<setw(4)<<"|";

             }


           }


        }


        cout<<endl;


        cout<<setw(8)<<"_";

        for(int i=1;i<=6;i++){

             cout<<setw(8)<<"________";

        }



         cout<<endl<<endl;


        cout<<setw(8)<<"Index :";

        for(int i=1;i<=5;i++){

             cout<<setw(4)<<" "<<i<<setw(5)<<" ";


        }



        if((ptr->frontSide==0 && ptr->rearSide==MAX-1) || (ptr->frontSide==ptr->rearSide+1)){

         cout<<endl<<endl;

         cout<<setw(40)<<"Status : FULL"<<endl;

        }


        if(ptr->frontSide==-1){

         cout<<endl<<endl;

         cout<<setw(40)<<"Status : EMPTY"<<endl;

        }


}


=>Output :

1.Queue Sample Full :





2.Empty Queue Sample :

 

Comments

Popular posts from this blog

Sum of Digit is Pallindrome or not

  Sum of Digit is Pallindrome or not Given a number N.Find if the digit sum(or sum of digits) of N is a Palindrome number or not. Note:A Palindrome number is a number which stays the same when reversed.Example- 121,131,7 etc. Example 1: Input: N=56 Output: 1 Explanation: The digit sum of 56 is 5+6=11. Since, 11 is a palindrome number.Thus, answer is 1. Example 2: Input: N=98 Output: 0 Explanation: The digit sum of 98 is 9+8=17. Since 17 is not a palindrome,thus, answer is 0. Your Task: You don't need to read input or print aything.Your Task is to complete the function isDigitSumPalindrome() which takes a number N as input parameter and returns 1 if the Digit sum of N is a palindrome.Otherwise it returns 0. Expected Time Complexi...

Menu with 5 option & selected option should appear in text box

Q6. Create a menu with 5 options and selected option should appear in text box. Android Program : Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.kishanhaldar.program6.MainActivity">                 ...

Closest Number

Closest Number Basic Accuracy: 11.21% Submissions: 1615 Points: 1 Given non-zero two integers N and M . The problem is to find the number closest to N and divisible by M . If there are more than one such number, then output the one having maximum absolute value .   Example 1: Input: N = 13 , M = 4 Output: 12 Explanation: 12 is the Closest Number to 13 which is divisible by 4. Example 2: Input: N = -15 , M = 6 Output: -18 Explanation: -12 and -18 are both similarly close to -15 and divisible by 6. but -18 has the maximum absolute value. So, Output is -18   Your Task: You don't need to read input or print anyth...