?个人主页:我的主页
?小白一枚,欢迎指教?
文章目录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2VKauJ0Q-1664964335381)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911095802734.png)]](https://img-blog.csdnimg.cn/346ee3102324489da86cca3b9e4fa704.png)
- 注:数据结构三要素----逻辑结构,数据的运算,存储结构(物理结构)存储结构不同,运算的实现方式就不同
一、栈的定义:
栈(stack)是只允许在一端进行插入或删除操作的线性表。是一种特殊的线性表,但是只能在某一端进行插入或删除操作。
1、重要的术语
栈顶(Top):线性表只允许进行插入和删除的那一端
栈底(Bottom):固定的,不允许进行插入和删除的另一端
空栈:不含任何元素的空表
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRfojUU4-1664964335382)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911101538717.png)]](https://img-blog.csdnimg.cn/7ef3ee189446463f9858bb79a19c7f32.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pGLhDJmp-1664964335384)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911101725289.png)]](https://img-blog.csdnimg.cn/d4bdfe8e710e472cb20de61ce361371f.png)
(上图元素等进栈顺序为:a1->a2->a3->a4->a5)
(出栈顺序为:a5->a4->a3->a2->a1)
- TIP:特点是后进先出 Last In First Out (LIFO)
2、栈的基本操作:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7nfsXeR-1664964335385)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911103908778.png)]](https://img-blog.csdnimg.cn/b0f64974e472446e90f60468eaf2af41.png)
3、栈的常考题型:
- 有哪些合法的出栈顺序?
例如:a->b->c->d->e。有哪些合法的出栈顺序?
- e、d、c、b、a 所有的元素都进栈以后再出
- 一边进栈,一边出栈
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbbMQH4N-1664964335387)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911105211973.png)]](https://img-blog.csdnimg.cn/d8c17c8264f7458e8a72161d469313ad.png)
4、总结:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pNUx4nfu-1664964335388)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911105338016.png)]](https://img-blog.csdnimg.cn/1d618fdcdf654f059ce83ad2b42cb66a.png)
二、顺序栈
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOfrlPn2-1664964335389)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911105736970.png)]](https://img-blog.csdnimg.cn/8b6cc06472b24f75b24410e1ef34aaf5.png)
1、顺序栈的定义:
#define MaxSize 10. //定义栈中元素的最大个数
typedef struct{
ElemType data[MaxSize]; //静态数组存放栈中的元素
int top; //栈顶指针
} SqStack; //sq->代表sequence 顺序
void testStack(){
SqStack S; //声明一个顺序栈,分配空间
//...后续操作..
}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eorME0le-1664964335390)(/Users/wuxin/Library/Application Support/typora-user-images/image-20220911111015433.png)]](https://img-blog.csdnimg.cn/4f7ea64ac1da455eb5c68e06d4d8d7c4.png)
2、初始化操作:


3、进栈操作:(插入)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3ZU1qlC-1664964335395)(/Users/wuxin/Library/Application Support/typora-user-images/image-20221005163345080.png)]](https://img-blog.csdnimg.cn/28690965a0904502aed53d2247f7a856.png)
4、出栈(删除):

5、读栈顶元素:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8gIabuR-1664964335398)(/Users/wuxin/Library/Application Support/typora-user-images/image-20221005164157522.png)]](https://img-blog.csdnimg.cn/e40d3c1f4efe46c2b24cc581b48fa7f8.png)
(注意与出栈操作的区别)
三、共享栈:(两个栈共享同一片空间)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KbuGq1i1-1664964335400)(/Users/wuxin/Library/Application Support/typora-user-images/image-20221005164859695.png)]](https://img-blog.csdnimg.cn/8160b598b1cc42d484af7059cf48a7f1.png)
- 判断栈满 :top0+1==top1
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fXEvaOt-1664964335401)(/Users/wuxin/Library/Application Support/typora-user-images/image-20221005165030834.png)]](https://img-blog.csdnimg.cn/8b3cee328ebb412ab3662f0788fa43cf.png)
- 回收:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oElfLJSb-1664964335402)(/Users/wuxin/Library/Application Support/typora-user-images/image-20221005165214782.png)]](https://img-blog.csdnimg.cn/1eaaa6bd464c4c5fbd6dd6a1ffd347d8.png)
版权声明:本文为weixin_50490968原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。