C++ program to implement the Queue ADT using a single linked list

Thursday, March 11th, 2010

/* Write C++ programs to implement the Queue ADT using a singly linked list */

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class node
{
      public:
             class node *next;
             int data;
};
 
class queue : public node
{
            node *head;
            int front,rare;
	public:
           queue()
           	{
            	front=-1;
             	rare=-1;
             }
           void push(int x)
           	{
            	if (rare < 0 )
             		{
               			head =new node;
                  		head->next=NULL;
                    	head->data=x;
                     	rare ++;
                     }
             else
                    {
                    	node *temp,*temp1;
                     	temp=head;
                      	if(rare >= 4)
                          {
                          	cout <<"queue over flow";
                           	return;
                           }
                        rare++;
                        while(temp->next != NULL)
                        	temp=temp->next;
                        temp1=new node;
                        temp->next=temp1;
                        temp1->next=NULL;
                        temp1->data=x;
                    }  }
 
           void display()
           	{
              node *temp;
              temp=head;
              if (rare < 0)
                {
                    cout <<" queue under flow";
                    return;
                 }
              while(temp != NULL)
               {
               	   cout <<temp->data<< " ";
                   temp=temp->next;
                }
             }
             void pop()
              {
              	node *temp;
               	temp=head;
                if( rare < 0)
                  {
                  	cout <<"queue under flow";
                   	return;
                   }
                if(front == rare)
                  {
                  	front = rare =-1;
                   	head=NULL;
                    return;
                   }
                front++;
                head=head->next;
                }
};
main()
{
	queue s1;
	int ch;
	while(1)
      {
		cout <<"\n1.PUSH\n2.POP\n3.DISPLAY\n4.EXIT\n enter ru choice:";
		cin >> ch;
		switch(ch)
		{
            case 1:
                 	cout <<"\n enter a element";
                  	cin >> ch;
                   	s1.push(ch); break;
 
            case 2: s1.pop();break;
            case 3: s1.display();break;
        	case 4: exit(0);
		  }
       }
return (0);
}

OUTPUT

1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:1
enter a element23

1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:1
enter a element54

1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:3
23 54
1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:2

1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:2

1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:2
queue under flow
1.PUSH 2.POP 3.DISPLAY 4.EXIT
enter ru choice:4

Avatar of Ranjith

Author Name :
Ranjith

Total : 1 Comment


One Response to “C++ program to implement the Queue ADT using a single linked list”

  1. Chidambaram says:

    There is a errro. Push n element fist. Pop it. Display it. No result comes. Pop now. No result comes

Leave a Reply

Question and Answer
C/C++ Unix & Linux Wordpress
Source codes
C C++ Java

Free email signup

Email: