Site icon DataFlair

Queue Linked List in DSA using C++

Program 1

// Program for Queue LinkedList
#include<iostream>
#include<stdio.h>
#define clrscr() system("cls")
using namespace std;
class node
{
    public:
    int data;
    node *add;
};
node *start=NULL,*new1,*temp,*rear,*front;
void create();
void insert();
void delete1();
void display();
int main()
{
    int choice;
  do
 {   
    cout<<"\n---------------Queue Linked List---------------";
    cout<<"\n 1.Create";
    cout<<"\n 2.Insert";
    cout<<"\n 3.Delete";
    cout<<"\n 4.Display";
    cout<<"\n 5.Exit";
    cout<<"\n--------------------------------------------------";
    cout<<"\nEnter Your Choice";
    cin>>choice;
    switch(choice)   
    {
        case 1:create();break;
        case 2:insert();break;
        case 3:delete1();break;
        case 4:display();break;
        case 5:break;
        default:cout<<"Invalid choice";
    }
 }while(choice!=5);  
     return 0 ;
}
void create()
{
     int n;
     char ch;
     cout<<"\n Enter an element";
     cin>>n;
     start=new node;
     start->data=n;
     start->add=NULL;
     temp=start;
     cout<<"\n Want to continue";
     cin>>ch;
     while(ch=='y' || ch=='Y')
     {
        cout<<"\n Enter next element";
        cin>>n;
        new1=new node;
        new1->data=n;
        new1->add=NULL;
        temp->add=new1;
        temp=temp->add;
        cout<<"\n Want to continue";
       cin>>ch;
     }
}
void insert()
{
       int n;
      if(start==NULL)
          cout<<"\n Queue not found";
       else
       {
            cout<<"Enter an element for insert";
            cin>>n;
            new1=new node;
            new1->data=n;
            new1->add=NULL;
            rear=start;
            while(rear->add!=NULL)
                {
                    rear=rear->add;
                }
             rear->add=new1; 
       }   
}
void display()
{
    if(start==NULL)
      cout<<"\nQueue not found";
    else
    {
        temp=start;
        while(temp!=NULL)
        {
             cout<<temp->data<<"  ";
             temp=temp->add;
        }
    }  
}
void delete1()
{
    if(start==NULL)
       cout<<"Queue not found";
    else
    {
            front=start;
            start=start->add;
            cout<<"Delete element: "<<front->data;
            delete(front);        
    }   
}

 

Exit mobile version