目录
- 1. 讲解:
- 2. C++代码实现:
- 小结:
1. 讲解:
用顺序的物理结构(数组)存储栈这个数据结构,实现栈的创建、销毁、增删查、判空。
top指针的指向位置有两种实现方法:一个是指向栈顶元素;一个是指向栈后第一个元素。这里用的是指向栈顶元素的方法实现,这两种不同的实现方式只是在有的操作中需要有部分修改。
2. C++代码实现:
#include <iostream>using namespace std;#define MaxSize 10
#define ElemType inttypedef 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;
}
小结:
关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可: