#include <iostream>
using namespace std;
class MY_stack
{
private:
int *per; //执行堆区空间
int top; //记录栈顶元素
public:
MY_stack():per(new int[10]),top(-1){}
//有参构建
//析构函数
~MY_stack()
{
delete []per;
}
//判空函
int my_void();
//判满函数
int my_full();
//入栈函数
int my_input();
//出栈函数
int my_output();
//遍历栈
int my_put();
//获取栈顶元素的引用
int &my_top()
{
return per[top];
}
};
int MY_stack::my_void()
{
if(top==-1)
{
return 0;
}
return 1;
}
int MY_stack::my_full()
{
if(top==10)
{
return 0;
}
return 1;
}
int MY_stack::my_input()
{
my_full();
int e;
cout<<"请输入:"<<endl;
cin>>e;
per[++top]=e;
return 0;
}
int MY_stack::my_output()
{
if(my_void()==0) return 0;
return per[top--];
}
int MY_stack::my_put()
{
if(my_void()==0) return 0;
for(int i=top;i>=0;i--)
{
cout<<per[i]<<" ";
}
cout<<endl;
return 0;
}
int main()
{
MY_stack s;
for(int i=0;i<10;i++)
s.my_input();
s.my_put();
s.my_top();
for(int i=0;i<5;i++)
s.my_output();
s.my_put();
s.my_top()=2;
s.my_put();
return 0;
}