Files
2022-WangDao-CS-DS-Notes/2.1栈.md
2022-03-28 16:49:12 +08:00

37 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 栈—— Stack
### 一、栈的定义
`栈`是线性表结构的一种但是栈结构的插入与删除操作都只能从同一端进行所以栈结构是一种受限制的线性表结构数据的插入与删除符合LIFO的原则也就是`后进先出``先进后出`)。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200317151355505.png#pic_center)
### 二、栈的基本操作
`注`:参数代“&”表示:方法运行完后,对参数修改的结果要`“带回来”`
对数据的操作:创销,增删查改
```c
InitStack(&S); //初始化表构造一个空的栈S分配内存空间
DestoryStack(&S); //销毁操作销毁栈并释放栈S所占用的内存空间
Push(&S,x); //进栈若栈S未满则将x加入使之成为新栈
Pop(&S,&x); //出栈若栈S非空则弹出栈顶元素并用x返回
GetTop(S,&x); //读栈顶元素若栈S非空则将x返回栈顶元素
//其它常用操作
StackEmpty(S); //判空操作
```
### 三、存储结构
`顺序存储``链式存储`
### 四、栈分类
栈的顺序存储:顺序栈
栈的链式存储:链栈