当前位置: 首页 > news >正文

数据结构第2章 栈和队列

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波·莫听穿林打叶声》
本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)

目录

    • 0、思维导图
    • 栈和队列
    • 1、栈
      • 1)特点
      • 2)分类
      • 3)应用
    • 2、队列
      • 1)特点
      • 2)分类
      • 3)应用

0、思维导图

在这里插入图片描述

栈和队列

1、栈

栈是一种遵循后进先出(LIFO,Last In First Out)原则的数据结构。可以想象成一摞盘子,最后放上去的盘子会最先拿掉。
在这里插入图片描述

1)特点

“后进先出(LIFO)”
在这里插入图片描述

2)分类

①顺序栈
在这里插入图片描述

采用顺序存储的栈结构。

  • 1️⃣入栈和出栈
    在这里插入图片描述

  • 2️⃣判断栈满空

    说明:栈顶指针top表示当前栈顶元素的位置、MAXSIZE是数组容量大小。

    • a.满:top == MAXSIZE - 1

    • b.空:top == -1

②链栈

采用链式存储的栈结构
在这里插入图片描述

  • a.入栈和出栈

在这里插入图片描述

  • b.判断栈满空

    说明:top为栈顶指针

    • 栈满:一般不存在此类情况

    • 栈空:top == NULL

③共享栈
共享栈通常是指在程序设计中,多个线程共享同一个栈空间的概念,如下图,两个顺序栈共享内存空间。
在这里插入图片描述

判断栈空、栈满

  • 栈空:top0=-l 时0号栈为空,topl=MaxSize时1号栈空;
  • 栈满:两个栈顶指针相邻(topl-top0=l)。时

3)应用

①函数调用(一般递归较为常见)

②表达式求值
在这里插入图片描述

  • 前缀表达式

    • 运算符位于操作数之前
  • 中缀表达式

    • 运算符位于操作数之间
  • 后缀表达式

    • 运算符位于操作数之后
  • 前中后缀转换

    • 1️⃣中缀转前缀

      • 转换步骤

        • 1、加括号

        • 2、前移运算符

        • 3、去括号

      • 举例在这里插入图片描述

    • 2️⃣中缀转后缀

      • 转换步骤

        • 1、加括号

        • 2、后移运算符

        • 3、去括号

    • 举例在这里插入图片描述

③括号匹配

在这里插入图片描述

④深度优先搜索

2、队列

队列是一种遵循先进先出(FIFO,First In First Out)原则的数据结构。可以想象成排队买票,最先排队的人最先买到票。

在这里插入图片描述

1)特点

“ 先进先出(FIFO)”
在这里插入图片描述

2)分类

①顺序队列

使用顺序存储的队列结构

  • 入队和出队
    在这里插入图片描述

  • 判断满与空

    • 队头指针front和队尾指针rear分别指示当前队头元素和队尾元素的位置

    • 满:rear == MAXSIZE - 1

    • 空:front == rear

②循环队列

队列的头尾相接的顺序队列结构
在这里插入图片描述

  • 判断满与空

    • 队头指针front和队尾指针rear分别指示当前队头元素和队尾元素的位置。Maxsize指队列的数组大小。

    • 满:(rear + 1) % Maxsize == front,其中%表示取模运算。

    • 空:front == rear。

    • 元素个数:(rear - front + Maxsize) % Maxsize

③链式队列

使用链式存储的队列结构
在这里插入图片描述

  • 判断满与空

    说明:头指针front和尾指针rear分别指向当前队头元素和队尾元素。

    • 满:一般不存在此类情况
    • 空:front == NULL且rear == NULL。

④双端队列
两端都可以进行入队和出队操作的队列
在这里插入图片描述

  • 输出受限的双端队列

    • 一端可插入和删除,另一端只允许插入
      在这里插入图片描述
  • 输入受限的双端队列

    • 一端可进行插入和删除,另一端只允许删除
      在这里插入图片描述

3)应用

①层次遍历

②计算机系统

  • 资源管理

  • 消息缓冲

  • 页面替换算法

③广度优先搜索

上述内容笔记部分图片来源网络,侵删。
参考内容:
1.《王道数据结构》
2.【LeetCode】括号匹配问题
3.数据结构电子讲义
4.数据结构共享栈

Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!

相关文章:

数据结构第2章 栈和队列

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 0、思维导图栈和队列1、栈1)特点2&#xff0…...

Axure鲜花商城网站原型图,网上花店订花O2O本地生活电商平台

作品概况 页面数量:共 30 页 兼容软件:仅支持Axure RP 9/10,非程序软件无源代码 应用领域:鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板,高保真高交互,属于O2O本地生活电…...

【docker】centos 使用 Nexus Repository 搭建私有仓库

Nexus Repository 是一种流行的软件仓库管理工具,它可以帮助您搭建私有仓库,以便在内部网络或私有云环境中存储、管理和分发各种软件包和组件。 它常被用于搭建Maven的镜像仓库。本文演示如何用Nexus Repository搭建docker 私有仓库。 使用Nexus Repos…...

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化?二、常用的消息序列化方式1)Java原生序列化(默认)2)JSON格式3)Protobuf 格式4)Avro 格式5)MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…...

23款奔驰GLC260L升级原厂540全景影像 安装效果分享

嗨 今天给大家介绍一台奔驰GLC260L升级原厂360全景影像 新款GLC升级原厂360全景影像 也只需要安装前面 左右三个摄像头 后面的那个还是正常用的,不过不一样的是 升级完成之后会有多了个功能 那就是新款透明底盘,星骏汇小许Xjh15863 左右两边只需要更换后…...

【CSS】文字描边的三种实现方式

目录 1. 可行的几种方式1.1. text-shadow 描边代码优缺点 1.2. text-stroke 描边实现优缺点 1.3. svg 描边实现优缺点 总结 1. 可行的几种方式 text-shadow–webkit-text-strokesvg 1.1. text-shadow 描边 MDN text-shadow 代码 <div class"text stroke">…...

【事务】事务传播级别

Spring事务定义了7种传播机制&#xff1a; PROPAGATION_REQUIRED&#xff1a;默认的Spring事物传播级别&#xff0c;若当前存在事务&#xff0c;则加入该事务&#xff0c;若不存在事务&#xff0c;则新建一个事务。 PAOPAGATION_REQUIRE_NEW&#xff1a;若当前没有事务&#x…...

Android WiFi 连接

Android WiFi 连接 1、设置中WiFi显示2、WiFi 连接流程2.1 获取PrimaryClientModeManager2.2 ClientModeImpl状态机ConnectableState2.3 ISupplicantStaNetworkCallback 回调监听 3、 简要时序图4、原生低层驱动5、关键日志 1、设置中WiFi显示 Android WiFi基础概览 packages/a…...

PLC与上位机PN通讯时,如何防止连接失败?

连接西门子PLC时失败&#xff0c;或者连接不上PLC&#xff0c;你可能需要做以下几点设置才可以。 一般来说每个PLC都有自己的IP地址&#xff0c;如果你的地址与PLC的地址冲突也就是地址重复是连接不上PLC的&#xff0c;如果地址没有冲突&#xff0c;但是不是在一个网段上也会导…...

LDD学习笔记 -- Linux错误码

LDD学习笔记 -- Linux错误码 EACCES(Permission Denied) 13EEXIST(File Exits) 17EINVAL(Invalid Argument) 22ENOENT(No Such File or Directory)ENOMEM(Out of Memory)EIO(Input/Output Error) 5ENOSPC(No space Left on Device)ENOTTY(Not a Typewrite)EPIPE(Broken Pipe)EI…...

华为交换机入门(六):VLAN的配置

VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接互通&#xff0c;从而将广播报文限制在一个VLAN内。 VLAN 主要用来解决如何…...

登录验证

目录 会话技术 Cookie Session JWT JWT生成 JWT校验 会话技术 会话 打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#xff0c;会话结束。在一次会话中可以包含多次请求与响应 会话跟踪 一种维护浏览器的方法 服务器需要…...

利用Podman构建基于Fission env/builder的镜像

镜像准备 构建Dockerfile fission的基础环境包括两种&#xff1a;env 以及 builder。如果仅基于code构建function&#xff08;i.e., 只创建deployachive&#xff09;&#xff0c;仅构建env即可&#xff1b;但如果需要构建sourcearchive&#xff0c;则需要同时创建env和builde…...

php加减乘除函数

目录 第一部分&#xff1a;简单示例 1、加法 2、减法 3、乘法 4、除法 第二部分&#xff1a;官方文档 1、加法 2、减法 3、乘法 4、除法 第一部分&#xff1a;简单示例 1、加法 $result bcadd(1.2, 1.4, 2); echo $result;//2.60 2、减法 $result bcsub(1.6, 1.…...

Go语言学习记录——用正则表达式(regexp包)来校验参数

前言 最近坐毕设ing&#xff0c;简单的一个管理系统。 其中对于用户注册、登录功能&#xff0c;需要进行一些参数校验。 因为之前使用过&#xff0c;因此这里计划使用正则表达式进行校验。但是之前的使用也仅限于使用&#xff0c;因此这次专门进行一次学习&#xff0c;并做此记…...

公司办公电脑文件防泄密系统

电脑文件防泄密系统是一种用于保护企业机密文件的软件系统&#xff0c;它采用一系列的安全技术手段&#xff0c;如数据加密、访问控制、审计跟踪等&#xff0c;来确保企业机密文件不被非法获取、窃取或泄漏。这种系统通常适用于企业、政府机构等需要对重要文件进行保密的机构。…...

手把手带你死磕ORBSLAM3源代码(三十四)Tracking.cc MonocularInitialization编辑

目录 一.前言 二.代码 2.1完整代码 2.2 单目视觉跟踪初始化 一.前言 这段代码是一个名为MonocularInitialization的函数,它属于Tracking类。从函数名称和代码内容来看,这个函数主要用于单目视觉跟踪的初始化过程。以下是代码的详细解读: 首先,函数检查一个名为m...

STL标准库与泛型编程(侯捷)笔记3

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…...

Iceberg: 列式读取Parquet数据

通过Spark读取Parquet文件的基本流程 SQL > Spark解析SQL生成逻辑计划树 LogicalPlan > Spark创建扫描表/读取数据的逻辑计划结点 DataSourceV2ScanRelation > Spark优化逻辑计划树&#xff0c;生成物理计划树 SparkPlan > Spark根据不同的属性&#xff0c;将逻辑…...

Ansible、Saltstack、Puppet自动化运维工具介绍

本文主要是分享介绍三款主流批量操控工具Ansible、Saltstack、Puppet主要对比区别&#xff0c;以及Ansible和saltstack的基础安装和使用示例&#xff0c;如果觉得本文对你有帮助&#xff0c;欢迎点赞、收藏、评论&#xff01; There are many things that can not be broken&am…...

《QGIS快速入门与应用基础》248:对齐工具(左对齐/居中对齐/右对齐)对齐工具(左对齐/居中对齐/右对齐)对齐工具(左对齐/居中对齐/右对齐)对齐工具(左对齐/居中对齐/右对齐)对齐工具(左对齐/

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

3大突破策略:Bypass Paywalls Clean 2024全场景应用指南

3大突破策略&#xff1a;Bypass Paywalls Clean 2024全场景应用指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代&#xff0c;付费墙已成为知识获取的主要障碍…...

DXVK 2.7.1:Vulkan驱动的Direct3D转换层性能提升15%的技术突破

DXVK 2.7.1&#xff1a;Vulkan驱动的Direct3D转换层性能提升15%的技术突破 【免费下载链接】dxvk Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 一、技术突破&#xff1a;从API翻译到性能…...

虚拟内存 pagefile.sys 安全迁移教程|释放 3~8GB

摘要Windows 系统默认将虚拟内存&#xff08;pagefile.sys&#xff09;存放在 C 盘&#xff0c;长期占用 3~8GB 系统盘空间&#xff0c;不仅会加剧 C 盘爆满问题&#xff0c;还会增加磁盘读写压力&#xff0c;影响系统运行性能。本文整理 官方原生、安全无毒、无需第三方工具 的…...

论文被吐槽逻辑乱?,有哪些真正实测靠谱的的降AI率平台推荐?

毕业论文降AI率&#xff0c;优先选语义重构 逻辑优化 去AI痕迹的工具&#xff0c;免费与付费结合更高效。下面按中文、英文、免费/付费分类推荐&#xff0c;附实测效果与适用场景。 一、中文论文降重工具&#xff08;最常用&#xff09; 1. 千笔AI&#xff08;综合全能首选&a…...

MySQL源码编译部署主从及MHA高可用集群实战

一.Mysql的源码编译1.下载安装包wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.3.0.tar.gz2.源码编译# 安装编译依赖的软件包&#xff0c;包括C/C编译器(如gcc/gcc-c)、构建工具(如cmake, git, bison)和开发库(如openssl-devel, ncurses-devel) [roo…...

用Multisim 14.0和AD620/OP07,手把手教你搭建一个能用的简易心电放大电路

从零开始构建心电放大电路&#xff1a;Multisim 14.0与AD620/OP07实战指南 在生物医学信号处理领域&#xff0c;心电信号采集一直是极具挑战性的课题。想象一下&#xff0c;当医生将电极贴在你胸口时&#xff0c;那些微弱的电信号是如何被放大并转化为清晰波形图的&#xff1f;…...

【效率翻倍】不止是安装:用Apache 2.4 + Win10快速搭建本地PHP/WordPress测试环境

效率翻倍&#xff1a;Apache 2.4 Win10 构建全功能PHP/WordPress开发环境实战指南 在本地开发环境中快速搭建Web服务器是每个PHP开发者或WordPress站长的必备技能。传统教程往往止步于Apache的基础安装&#xff0c;却忽略了实际开发中需要的完整工具链——从PHP解释器集成到虚…...

电磁波相关(AI回答)

物质都会吸收多种频率&#xff08;或波段&#xff09;的电磁波 是的&#xff0c;绝大多数物质都会吸收多种频率&#xff08;或波段&#xff09;的电磁波&#xff0c;而不是只吸收单一频率。这正是我们前面讨论的选择性吸收在实际中的体现&#xff1a;物质内部有多种微观能量模…...

React Native WebRTC M124版本终极指南:未来发展方向与特性深度解析

React Native WebRTC M124版本终极指南&#xff1a;未来发展方向与特性深度解析 【免费下载链接】react-native-webrtc The WebRTC module for React Native 项目地址: https://gitcode.com/gh_mirrors/re/react-native-webrtc React Native WebRTC是React Native生态中…...