Skip to main content

Stack operations using Linked List implementation


#include<iostream>
using namespace std;

 void push();
 void pop();
 void traverse();

 struct node
 { int num;
   struct node *next;
 }*top=NULL;

 typedef struct node node;
 typedef struct node* nptr;

 void main()
 { char choice;
   while(1)
   {
   system("cls");
   cout<<"-----STACK USING LINKED LIST-----\n\n";
   cout<<" 1.PUSH\n";
   cout<<" 2.POP\n";
   cout<<" 3.TRAVERSE\n";
   cout<<" 4.EXIT\n";
   cout<<" Enter your choice: ";
   cin>>choice;
   switch(choice)
   { case '1': push();
      break;
     case '2': pop();
      break;
     case '3': traverse();
      break;
     case '4': exit(0);
     default: cout<<"\n\nInvalid choice\n\n";
   }
   system("pause");
  }
 }

  void push()
  { nptr p;
    int item;
    if((p=new node)!=NULL)
    { cout<<"\n\nEnter the item: ";
      cin>>item;
      p->num=item;
      p->next=top;
      top=p;
    }
    else
    { cout<<"\n\nOverflow\n\n";
    }
  }

  void pop()
  { nptr p;
    if(top==NULL)
    { cout<<"\n\nUNDERFLOW\n\n";
    }
    else
    { p=top;
      top=top->next;
      cout<<"\n "<<p->num<<" is deleted\n\n";
      delete p;
    }
  }

  void traverse()
  { nptr p;
    p=top;
    if(top==NULL)
    { cout<<"\n stack is empty\n\n";
    }
    else
    { cout<<"\n\n STACK: ";
      while(p!=NULL)
      { cout<<" "<<p->num;
p=p->next;
      }
    }
cout<<"\n\n";
  }

Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Occurrences of each letter of alphabet in the text

Program to print a table indicating the no. of occurrences of each letter of alphabet in the text entered as command line arguments. #include<iostream> #include<string> using namespace std; int main(int argc, char *argv[]) { string str=""; static int alphabet[26]; int x; cout<<"\n\n Command-Line Argument\n"; for(int i=0;i<argc;i++) { cout<<"\n "<<argv[i]; str+=argv[i]; } for(int i=0;i<str.length();i++) { if(str[i]>='A' && str[i]<='Z') { x=((int)str[i])-65; alphabet[x]++; } else if(str[i]>='a' && str[i]<='z') { x=((int)str[i])-97; alphabet[x]++; } } //Displaying No. of occurrences of each alphabets in the command line argument cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n Alphabet No. of Occurrences\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; for(int i=0;i<26;i++)...

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};...