using namespace std;
class my_stack
{
private:
int *number;
int pos;
int size;
public:
my_stack() //default
{
number=new int[100];
pos=-1;
size=100;
}
my_stack(int len) //assign size
{
number=new int[len];
pos=-1;
size=len;
}
void pop() //pop
{
cout<<"pop "<<number[pos]<<endl;
pos--;
if(pos==-2)
{
cout<<"====================="<<endl;
cout<<"index can't be slower than 0,try again"<<endl;
cout<<"====================="<<endl;
pos++;
}
}
void push(int num) //push
{
pos++;
if(pos+1>size)
{
cout<<"====================="<<endl;
cout<<"error buffer is filled,try again"<<endl;
cout<<"====================="<<endl;
pos--;
}
else
number[pos]=num;
}
void show() //show
{
if(pos==-1)
{
cout<<"====================="<<endl;
cout<<"there is no content"<<endl;
cout<<"====================="<<endl;
}
else
{
cout<<"====================="<<endl;
cout<<"index low to high"<<endl;
cout<<"stack contents"<<endl;
cout<<"====================="<<endl;
for(int i=pos;i>=0;i--)
cout<<"|"<<"__"<<number[i]<<"__"<<"|"<<endl;
}
}
~my_stack(){} //delete
};
int main()
{
int number;
int opt;
int size;
cout<<"input stack size : ";
cin>>size;
my_stack source(size);
cout<<"1 --- push "<<endl
<<"2 --- pop "<<endl
<<"3 --- show "<<endl;
while(true)
{
cout<<"command number : " ;
cin>>opt;
switch(opt)
{
cin>>opt;
case 1:
cout<<"enter a number : ";
cin>>number;
source.push(number);
break;
case 2:
source.pop();
break;
case 3:
source.show();
break;
default:
cout<<"input error , try again"<<endl;
break;
}
}
return 0;
}