IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构之栈和队列 -> 正文阅读

[数据结构与算法]数据结构之栈和队列

栈和队列

(1)概念:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素 操作。
进行数据插入和删除操作的一端称为栈顶,另一端称为栈底

(2)栈中的元素遵循先进后出的原则

(3)所以说,只要满足元素遵循先进后出的原则,那么这种数据结构都叫做,不管你底层是用数组或者链表实现,他们都叫做栈。

(4)压栈和出栈的简单示意图
在这里插入图片描述
(4)Java中有一个给使用者写好的栈----->Stack类
(5)Stack类中的方法
在这里插入图片描述
模拟实现栈(Stack类)数组版本
在这里插入图片描述
(6)总结:栈的元素是从栈顶压栈到栈底,从栈顶获取栈中的元素,所以就会出现元素先进后出的特点

队列

(1)概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头

(2)队列的示意图:
在这里插入图片描述
(3)队列的特点:队列元素先进先出,后进后出

(4)不管数据结构的底层是由链表或者数组来实现的,只要满足元素先进先出,后进后出,那么这个数据结构就是队列
(5)队列有顺序对列和循环队列
顺序队列的模拟(底层使用单链表)
在这里插入图片描述
循环队列
实际中我们有时还会使用一种队列叫循环队列。如操作系统课程讲解生产者消费者模型时可以就会使用循环队列。环形队列通常使用数组实现。
底层使用数组来实现队列的时候,我们一般使用循环队列来实现

在这里插入图片描述
编写一个循环队列比较难的是出队列和进队列这两部分功能的编写
有两个难点:
一、如何判断循环列表是否为空?
二、如何判断循环列表是满的?

判断循环列表是否为空比较简单—>只要队头和队尾重合就行
解释:队列的删除是对队头进行,每删除一个元素,队头向后移动,只有当队头和队尾重合的时候,队列就只剩一个元素了,所以我们在设计循环队列的时候,可以将队尾多向后移动一位,所以当队头和队尾重合的时候循环队列为空

判断循环列表是满的这个比较难,我提供三种方法:
一、通过设置size变量来记录
二、空一个位置
三、使用标记

循环队列的模拟实现(底层是数组)
在这里插入图片描述
在这里插入图片描述
这里有循环队列的题,想做可以做一下:
设计循环队列

双端队列
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。
那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。

Java中有给使用者写好一个队列---->LinkedList类

LinkedList类的底层是由双向链表来实现的,所以它的功能比较强大,即可以当队列,也可以当栈,也可当顺序表

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:09:04  更:2022-05-14 10:09:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:22:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码