头文件
#ifndef HEADER_H
#define HEADER_H
#define MAX 20
class Seqstack
{
private:
int top;
int *data;
public:
//创建
void stack_creat();
//判空
bool stack_empty();
//判满
bool stack_full();
//入栈
void stack_push(int n);
//出栈
void stack_pop();
//遍历栈
void stack_show();
//销毁
void stack_free();
};
#endif // HEADER_H
源文件
#include<header.h>
#include<iostream>
using namespace std;
//创建
void Seqstack::stack_creat()
{
data = new int[MAX];
top=-1;
}
//判空
bool Seqstack::stack_empty()
{
return top == -1;
}
//判满
bool Seqstack::stack_full()
{
return top ==(MAX-1);
}
//入栈
void Seqstack::stack_push(int n)
{
if(stack_full())
{
cout<<"栈满,无法入栈"<<endl;
return;
}
top++;
data[top]=n;
}
//出栈
void Seqstack::stack_pop()
{
if(stack_empty())
{
cout<<"栈空,无法出栈"<<endl;
return;
}
top--;
}
//遍历栈
void Seqstack::stack_show()
{
if(stack_empty())
{
cout<<"栈空"<<endl;
return;
}
cout<<"栈中从栈顶到栈底元素分别是:"<<endl;
for(int i=top; i>=0; i--)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
//销毁
void Seqstack::stack_free()
{
delete []data;
data = nullptr;
cout<<"销毁成功"<<endl;
}
测试文件
#include <iostream>
#include<header.h>
using namespace std;
int main()
{
Seqstack s;
//创建顺序栈
s.stack_creat();
//判空
s.stack_empty();
//入栈
s.stack_push(3);
s.stack_push(6);
s.stack_push(5);
s.stack_push(6);
s.stack_push(4);
s.stack_push(1);
s.stack_push(2);
//遍历
s.stack_show();
//出栈
s.stack_pop();
s.stack_pop();
s.stack_pop();
//遍历
s.stack_show();
//销毁
s.stack_free();
}
测试结果