Sunday, 2 September 2012

Queue implementation using linked list


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>

struct node
{
    int x;
    node *next;
};

class queue
{
private:
    node *front,*rear;
public:
    queue()
    {
       front=rear=NULL;
    }
    void menu();
    void insert();
    void del();
    void display();
};

void queue::menu()
{
    int ch;
    do
    {
    cout<<endl;
    cout<<"QUEUE MENU"<<endl
        <<"1.Insert"<<endl
        <<"2.Delete"<<endl
        <<"3.Display"<<endl
        <<"4.Exit"<<endl;
    cout<<"Enter your choice : ";
    cin>>ch;

    switch(ch)
    {
    case 1: insert();
        break;

    case 2: del();
        break;

    case 3:    display();
        break;

    case 4: exit(0);
        break;

    default:
        cout<<"Sorry! invalid choice"<<endl;

    }
    }while(ch!=4);
}

void queue::insert()
{
    node *temp;
    temp = new node;
    int a;
    cout<<"Enter an element into queue : ";
    cin>>a;
    temp->x=a;
    temp->next=NULL;
    if(front==NULL)
         front=temp;
     else
         rear->next=temp;
    rear=temp;
}

void queue:: del()
{
    node *temp;
    if(front==NULL)
       cout<<"Queue is Underflow"<<endl;
     else
     {
       temp=front;
       cout<<"Deleted element is : "<<temp->x<<endl;
       front=front->next;
       delete temp;
     }
}

void queue::display()
{
    node *ptr;
    if(front==NULL)
       cout<<"Queue is empty"<<endl;
     else
     {
       cout<<"Queue elements are : ";
       for(ptr=front;ptr;ptr=ptr->next)
           cout<<ptr->x<<" ";
       cout<<endl;
     }
}

void main()
{
 queue q;
 clrscr();
 q.menu();
 getch();
}

No comments:

Post a Comment