Stack
Stack
h> class element { public: int value; element* next; };//class element class stack { public: int size; element* current; stack() { size=0; current=NULL; }//default constructor bool push(int,element*); bool pop(); bool isEmpty(); int getStackSize(); void printStackSize(); void printStackElements(element*); void printStackMenu(); }; bool stack::push(int ele,element* temp) { temp=new element; if(current==NULL) { temp->next=NULL; } else { temp->next=current; } temp->value=ele; current=temp; printf("%d inserted\n\n",ele); size++; return false; } bool stack::pop() { if(isEmpty()) { cout<<"\nStack is Empty\n"; return false;
} else { cout<<"\n Element To POP :"<<current->value; cout<<"\n Before POP"; printStackElements(current); current=current->next; cout<<"\n After POP"; printStackElements(current); size=size--; } return true; } bool stack::isEmpty() { if(getStackSize()==0) return true; return false; } int stack::getStackSize() { return size; }//returns size of the stack void stack::printStackSize() { cout<<"\nThe Size of the Stack:"<<size<<"\n"; }//print the stack size void stack::printStackElements(element* base) { element* curr2; curr2= base; cout<<"\n-----\n"; cout<<"STACK\n"; cout<<"-----\n"; while(curr2!=NULL) { cout<<" |"<<curr2->value<<"|\n"; curr2=curr2->next; } }// print the stack void stack::printStackMenu() { cout<<"Welcome to Stack \n"; cout<<"1.Push an element\n"; cout<<"2.Pop an element\n"; cout<<"3.Display Stack\n"; cout<<"4.Size Of Stack\n"; cout<<"5.Exit\n"; } void main()
{ stack st; char Option=0; int val; while(1) { st.printStackMenu(); cin>>Option; switch(Option) { case '1': cout<<"Enter a Number \n"; cin>>val; st.push(val,st.current); break; case '2': st.pop(); break; case '3': st.printStackElements(st.current); break; case '4': st.printStackSize(); break; case '5': exit(0); break; } } }