【考研复习 - 数据结构】栈的基本概念及顺序栈的代码实现
栈的概念(栈是一种逻辑结构)
栈的定义
- 只允许一端进行插入或者删除操作的线性表
栈的特点
- 后进先出(Last In First Out)(LIFO)
栈的基本操作
- InitStack(&S);【创建】
- DestroyStack(&S);【销毁】
- Push(&S, x);【入栈】
- Pop(&S, &x);【出栈】
- StackEmpty(S);【判空】
栈的常考题
【选择题】
- 题目给出元素的进栈顺序,判断哪个选项的出栈顺序正确
顺序栈的代码实现 (顺序栈是一种存储结构)
顺序栈的定义(数组实现,以栈顶指针指向 -1 为例,最后有栈顶指向 -1和 0 的关键代码实现总结)
#define MaxSize 10 // 定义顺序栈中元素的最大个数
typedef struct{
int data[MaxSize]; // 使用静态数组存放栈中的元素
int top; // 栈顶指针,指向栈顶元素
}SqStack;
一、初始化操作
void InitStack(SqStack &S){
S.top = -1