目录
- 1. 讲解:
- 2. C++代码实现:
- 小结:
1. 讲解:
用顺序的物理结构(数组)存储栈这个数据结构,实现栈的创建、销毁、增删查、判空。
top指针的指向位置有两种实现方法:一个是指向栈顶元素;一个是指向栈后第一个元素。这里用的是指向栈顶元素的方法实现,这两种不同的实现方式只是在有的操作中需要有部分修改。
2. C++代码实现:
#include <iostream>
using namespace std;
#define MaxSize 10
#define ElemType int
typedef struct {
ElemType data[MaxSize]; // 静态数组存放元素
int top; // 栈顶指针
}SqStack;
// 初始化栈
void InitStack(SqStack& S) {
S.top = -1; // 初始化栈顶指针
}
// 判断栈空
bool StackEmpty(SqStack S) {
if (S.top == -1) return true;
else return false;
}
// 入栈
bool Push(SqStack& S, ElemType e) {
if (S.top == MaxSize - 1) return false; // 如果栈满则失败
S.data[++S.top] = e; // 栈顶指针加一
return true;
}
// 出栈
bool Pop(SqStack& S, ElemType& e) {
if (S.top == -1) return false; // 如果栈空则失败
e = S.data[S.top--]; // 栈顶指针减一
return true;
}
// 读栈
bool GetTop(SqStack& S, ElemType& e) {
if (S.top == -1) return false; // 如果栈空则失败
e = S.data[S.top]; // 栈顶指针减一
return true;
}
void main() {
SqStack S; // 声明顺序栈(分配空间)
// 1.初始化
InitStack(S);
// 2.进栈
Push(S, 1);
// 3.读取栈顶元素
int e;
GetTop(S, e);
cout << e << endl;
// 4.出栈
Pop(S, e);
cout << e << endl;
}
小结:
关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可: