头文件:
#ifndef HEADER_H
#define HEADER_H
class Stack
{
private:
int *seqStack;
int top; //栈顶元素下标
public:
//初始化函数
void init(int size);
//判空函数(空返回1,非空返回0)
int empty();
//入栈函数
void stack_push(int num);
//出栈函数
int stack_pop();
//遍历函数
int stack_show();
//销毁函数
int stack_destroy();
};
#endif // HEADER_H
源文件:
#include <iostream>
#include <header.h>
using namespace std;
//初始化函数
void Stack::init(int size)
{
seqStack = new int[size];
top = -1;
cout<<"初始化成功"<<endl;
}
//判空函数(空返回1,非空返回0)
int Stack::empty()
{
return top == -1?1:0;
}
//入栈函数
void Stack::stack_push(int num)
{
top++;
seqStack[top] = num;
cout<<"入栈成功"<<endl;
}
//出栈函数
int Stack::stack_pop()
{
if(empty())
{
cout<<"出栈失败"<<endl;
return 0;
}
top--;
cout<<"出栈成功"<<endl;
return 1;
}
//遍历函数
int Stack::stack_show()
{
if(empty())
{
cout<<"遍历失败"<<endl;
return 0;
}
for(int i=0;i<=top;i++)
{
cout<<seqStack[i]<<" ";
}
cout<<endl;
cout<<"遍历成功"<<endl;
return 1;
}
//销毁函数
int Stack::stack_destroy()
{
delete []seqStack;
seqStack = nullptr;
top = -1;
cout<<"销毁成功"<<endl;
return 1;
}
主函数:
#include <iostream>
#include <header.h>
using namespace std;
int main()
{
//定义类
Stack s1;
//初始化
s1.init(5);
//入栈
s1.stack_push(5);
s1.stack_push(6);
s1.stack_push(7);
s1.stack_push(8);
s1.stack_push(9);
//遍历
s1.stack_show();
//出栈
s1.stack_pop();
s1.stack_pop();
//遍历
s1.stack_show();
//销毁
s1.stack_destroy();
//遍历
s1.stack_show();
return 0;
}
程序执行结果: