目录
一 顺序栈的结构定义
#define Elemtype int
#define Maxsize 20
typedef struct SqStack
{
Elemtype data[Maxsize]; // 存放栈中元素
int top; // 栈顶指针
};
二 顺序栈的基本操作
2.0 头文件展示
void Init_Stack(SqStack& s); // 栈的初始化
bool Empty_Stack(SqStack& s); // 判断栈空
void Push_Stack(SqStack& s); // 进栈
Elemtype Pop_Stack(SqStack& s, int i); // 前i个元素出栈
void Reverse_Stack(SqStack s); // 栈的遍历
Elemtype Get_Stack(SqStack &s); // 查找栈顶元素
2.1 主函数展示
int main()
{
int a = 0;
SqStack s; // 创建一个栈的对象
Init_Stack(s);
Push_Stack(s);
cout << endl;
if (Empty_Stack(s) == true)
{
cout << "栈空" << endl;
exit(0);
}
Reverse_Stack(s);cout << endl;
a = Get_Stack(s);
cout << "栈顶元素的值为" << a << endl;//Pop_Stack(s, 3);
//cout << endl;
//Reverse_Stack(s);
}
2.2 顺序栈的初始化
void Init_Stack(SqStack& s)
{
s.top = -1; // top指向-1
}
2.3 判断栈是否为空
bool Empty_Stack(SqStack& s)
{
if (s.top == -1)
{
cout << "栈空,请输入栈中的元素" << endl;
return true;
}
else
{
return false;
}
}
三 顺序栈的进栈,出栈,遍历和查找操作
3.1 顺序栈的进栈操作
void Push_Stack(SqStack& s)
{
int len = 0;
int val = 0;
if (s.top == Maxsize - 1)
{
cout << "栈已经满了" <&l