/* program for stack implementation in c++ using array*/
#include <iostream>
using namespace std;
class stackk
{
private:
// making a stack of size 20
int stk[20],top;
public:
// constructor for the class
stackk()
{
top=-1;
}
// method to push the element onto the stack
void push(int element)
{
//increment top value
top++;
//check if stack is full
if(top==20)
{
cout<<"\\nSTACKFULL!!!!!";
}
else
{
stk[top]=element;
cout<<"\\nELEMENT PUSHED!!";
}
return;
}
int pop()
{
int element;
//check if stack is empty
if(top<0)
{
cout<<"\\nSTACKEMPTY!!!!!";
//consider all elements are smaller than 99999
return 99999; //returning 99999 to indicate stackempty
}
else
{
element=stk[top];
// decrement the top value
top--;
return element;
}
}
//display stack contents
void display()
{
int i;
for(i=0;i<=top;i++)
{
cout<<"\\n"<<stk[i];
}
}
};
int main()
{
int element,cont,choice;
cont=1;
stackk s1;
do
{
cout<<"\\nTHE FOLLOWING CHOICES ARE AVAILIABLE : ";
cout<<"\\n1.PUSH AN ELEMENT";
cout<<"\\n2.POP AN ELEMENT";
cout<<"\\n3.VIEW STACK CONTENTS";
cout<<"\\nENTER YOUR CHOICE : ";
cin>>choice;
switch(choice)
{
case 1:
cout<<"\\nENTER THE ELEMENT TO BE PUSHED : ";
cin>>element;
s1.push(element);
break;
case 2:
element=s1.pop();
if(element!=99999)
{
cout<<"\\nTHE ELEMENT POPPED IS : "<<element;
}
break;
case 3:
cout<<"\\nTHE ELEMENTS OF STACK ARE : ";
s1.display();
break;
}
cout<<"\\nDO YOU WANT TO CONTINUE (1/0): ";
cin>>cont;
}while(cont==1);
return 0;
}