数据结构——栈与队列
2026/6/23 6:16:50 网站建设 项目流程

目录

一: 栈

1 : 什么是栈

2 : 栈的基本操作

a : 基本框架

​编辑

b: 入栈

c:出栈 && 获取栈顶元素

二:队列

1:什么是队列

2:队列的基本操作

a:基本框架

b : 入队列

c : 出队 && 获取队头元素

三:循环队列

1:什么是循环队列

2 : 循环队列的基本操作

a:基本框架

b: 入队 && 出队

c : 队列是否为空 && 队列是否为满

d : 获取队头元素 && 获取队尾元素


一: 栈

1 : 什么是栈

数据结构中的栈与计算机内存中的栈并不相同 , 这里不做详细解释

栈是一种特殊的线性表, 也就是说 : 栈是用来存放一连串的元素

特殊的是 : 栈只能从一端存储元素 ,并且后入栈的元素先出栈

类似于将水倒入水杯中 , 杯顶区域的水 比 杯底区域的水先倒出

2 : 栈的基本操作

接下来 , 我们以整型为例,利用链表来模拟实现栈的基本操作

虽然数组也能够实现, 但是数组的大小并不灵活, 修改起来并不方便

而链表就很好的解决了这个问题

a : 基本框架


b: 入栈

c:出栈 && 获取栈顶元素

二:队列

1:什么是队列

队列是一种线性的数据结构 , 用来存放一连串的元素。

队列 , 顾名思义 : 就是同种元素所排成的一条队伍 。

特殊的是 :先入队的元素后出队。

类似于现实生活中的排队。

2:队列的基本操作

同样 , 我们以整型为例 。利用链表来模拟实现队列

a:基本框架

b : 入队列

c : 出队 && 获取队头元素

三:循环队列

1:什么是循环队列

循环队列 顾名思义 : 一个围成圈的队列。

包含队列的所有基本操作

与队列不同的是 :① 循环队列的大小一般是固定的 。

② 循环队列的每一个空间可以重复利用 ,有利于节省空间。

我们先思考一下 , 为了实现循环队列 , 入队与出队时 , 队头指针与队尾指针分别该如何操作。

front表示队头指针, rear表示队尾指针 ,k表示队列的长度

既然涉及到循环 , 那么 front 就不能简单的+1来让其移动 , rear 也是同理。

不难发现 , front 与 rear 都是在 【 0 ,k 】这个区间内的 , 所以我们可以利用%来令frontrear移动。

但是 , 这也会导致另一个问题 ,队列会出现一个空位, 不论 队列中元素有多少 , 这个位置始终是空的 。不过利大于弊 , 通过牺牲一个空间来让后续的操作 变得简易 。

2 : 循环队列的基本操作

a:基本框架

b: 入队 && 出队

c : 队列是否为空 && 队列是否为满

d : 获取队头元素 && 获取队尾元素

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询