C++ programs to implement the Stack ADT using a singly linked list

Wednesday, March 10th, 2010

/* Write C++ programs to implement the Stack ADT using a singly linkedlist*/

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class node
{
      public:
             class node *next;
             int data;
};
 
class stack : public node
{
            node *head;
            int tos;
      public:
             stack()
               {
                    tos=-1;
               }
             void push(int x)
              {        
              	if (tos < 0 )
                  {
                     head =new node;
                     head->next=NULL;
                     head->data=x;
                     tos ++;
                   }
             else
                  {
                   	 node *temp,*temp1;
                     temp=head;
                     if(tos >= 4)
                     	{
                      		cout <<"stack over flow";
                        	return;
                         }
                     tos++;
                     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 (tos < 0)
                    {
                        cout <<" stack under flow";
                        return;
                     }
                  while(temp != NULL)
                     {
                        cout <<temp->data<< " ";
                        temp=temp->next;
                     }
               }
              void pop()
                {
                   node *temp;
                   temp=head;
                   if( tos < 0 )
                    {
                       cout <<"stack under flow";
                       return;
                    }                  
                    tos--;
                    while(temp->next->next!=NULL)
                      {
                     	temp=temp->next;
                       }
                    temp->next=NULL;
                 }
};
main()
{
	stack s1;
	int ch;
	while(1)
	{
	cout <<"\n1.PUSH\n2.POP\n3.DISPLAY\n4.EXIT\n enter ur 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 element67

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

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

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

Avatar Image

Author Name :
Ranjith

Total : 6 Comments


6 Responses to C++ programs to implement the Stack ADT using a singly linked list

  1. Hari

    this contains 4 errors…… please rectify it

  2. srikanth

    in the above program what is tos indicates

  3. ravi

    wat errors sir plz rectify it soon……………….

  4. ravi

    sir plz provide program widout errors it i dffcul to rectify!!!!!!!!!!!!!!!!!!!!!!!!plzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

  5. kavya

    plz keep prog with out any errosssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss’\”S”

  6. srikanth

    TOS=TOP OF STACK?

Leave a Reply

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

Free email signup