代码:
#include <iostream>
#include<iomanip>
using namespace std;
class Seqstack
{
private:
int *data;
int top; //记录栈顶元素所在下标
public:
//申请size个int类型的空间
void init(int size)
{
data = new int[size];
top = -1;
}
//判空
bool stack_empty()
{
return top == -1;
}
//入栈
void stack_push(int e)
{
data[++top] = e;
cout<<e<<"入栈成功"<<endl;
}
//遍历栈
void stack_show()
{
//判空
if(stack_empty())
{
cout<<"遍历失败"<<endl;
return ;
}
cout<<"栈顶到栈底元素分别是:";
for(int i=top;i>=0;i--)
{
cout<<setw(3)<<data[i];
}
cout<<endl;
}
//出栈
void stzck_pop()
{
//判空
if(stack_empty())
{
cout<<"出栈失败"<<endl;
return ;
}
cout<<data[top]<<"出栈成功"<<endl;
top--;
}
//销毁
void stack_destroy()
{
delete []data;
data = nullptr;
}
};
int main()
{
Seqstack s;
//调用申请函数
s.init(6);
//调用入栈函数
s.stack_push(4);
s.stack_push(7);
s.stack_push(2);
s.stack_push(5);
//调用遍历函数
s.stack_show();
//调用出栈函数
s.stzck_pop();
//调用遍历函数
s.stack_show();
//调用销毁函数
s.stack_destroy();
return 0;
}
运行结果: