【C/C++ 数据结构】-栈和队列(1)

作者:学Java的冬瓜
博客主页:☀冬瓜的主页🌙
专栏:【C/C++ 数据结构和算法】

前言

本篇博客的学习目标是:学习栈和队列的概念实现方式。代码请期待下一篇博客。

一、栈

1、概念

:是一种特殊的线性表,它只允许在固定的一段进行插入删除操作
栈顶和栈底:进行数据插入删除的一端叫做栈顶,另一端叫做栈底。

压栈(push):数据插入栈叫做压栈/进栈/入栈。
出栈(pop):数据从栈删除叫做出栈。
注意: 1、无论压栈还是出栈,都在栈顶实现。2、栈遵循:后进先出的原则。

2、实现栈

1.1、数组实现

1>、简单分析
在这里插入图片描述

2>、具体实现
在这里插入图片描述

1.2、链表实现

在这里插入图片描述
1>、双向链表实现栈
在这里插入图片描述
2>、单链表实现栈
在这里插入图片描述

二、队列

1、概念

队列:也是一种特殊的线性表,它只允许在一端插入,另一端删除。
对头队尾:删除的一端叫队头,插入的一端叫队尾。

2、实现队列

2.1、数组实现

在这里插入图片描述

2.2、链表实现

在这里插入图片描述

三、小练

在这里插入图片描述

总结

  1. 数组和链表的选择栈用数组(顺序表)队列用单链表(链表)。相对效率较高,空间浪费少。
  2. 栈和队列区别栈是在一端进行插入删除,而队列是在一端插入,另一端删除
  3. 栈顶栈底和队头队尾:栈的栈顶是插入删除的一端,另一端是栈底。而队列的队头是删除一端队尾是插入的一端
  4. 栈和队列入已经出的区别:栈的入和出顺序对结果出有影响,因为它规定只在一端入栈、出栈,栈遵循后入先出队列遵循先入先出,队列入和出的顺序对结果出不影响。
  5. 栈和队列实现:基本上是顺序表和链表的内容,比如压栈、出栈就是尾插、尾删。只是限制了一些条件。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学Java的冬瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值