4.1.2 栈和队列(一)

文章目录

  • 栈的定义
  • 栈的基本运算
  • 栈的存储结构
  • 栈的应用
    • 表达式求值

栈和队列的逻辑结构与线性表相同,但是其运算受到限制,统称为运算受限的线性表。
栈, 先进后出
队列,先进先出

栈的定义

在这里插入图片描述
栈顶,唯一能操作端
栈底,另一端
空栈,不含元素

栈的基本运算

在这里插入图片描述
栈的基本运算

  • 初始化空栈:initStack(S)
  • 判栈空:isEmpty(S)
  • 入栈:push(S,x)元素x加入栈顶,更新栈顶指针
  • 出栈:pop(S)删除栈顶元素,更新栈顶指针
  • 读栈顶元素:top(S)返回栈顶元素,但不修改栈顶指针

栈的存储结构

在这里插入图片描述
栈有顺序存储、链式存储两种存储结构。

  • 顺序存储:用地址连续的存储单元存储,需要设置栈顶指针top。栈的存储空间需要预先申请,存储空间有限,入栈前需判断是否栈满,否则会出现上溢问题。
  • 链式存储:用链表存储栈,存储单元地址可连续,也可分散。链表的头指针即为栈顶指针top。不存在上溢问题。

栈的应用

在这里插入图片描述
栈的典型应用包括:表达式求值、括号匹配、实现计算机语言、将递归过程转变为非递归过程。

表达式求值

在这里插入图片描述
使用栈进行表达式求值
① 将表达式转换为后缀表达式,例如3-42转换成3,4,2,,-
② 从左到右扫描后缀表达式
情况一:遇到运算对象,将其压入栈中
情况二:遇到运算符,从栈顶取出数据,进行计算。所取数据先摆放在运算符的右边,不足以完成计算时,再取出栈顶数据,放在运算符左边。完成计算,将计算结果压入栈中。
③ 不断循环,直到后缀表达式结束。
在这里插入图片描述
3,4,2,,-
① 3,4,2压入栈中
② 遇到
, 弹出2,4,计算4*2=8,压入栈中
③ 遇到-,弹出8,3,计算3-8=-5,压入栈中
④ 表达式结束,栈顶为计算结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何理解RDD,以及RDD的五大特性和五大特点。

RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。 Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区…

JavaWeb开发(六)XML介绍

1. XML介绍 1.1. 什么是XML (1)XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种很像HTML的标记语言。   (2)XML 的设计宗旨是传输数据(目前主要是作为配置文件),而不是显示数据。   (3&a…

2000-2020年各省地区生产总值数据/各省gdp数据

2000-2020年各省地区生产总值数据/各省gdp数据 1、时间:2000-2020年 2、来源:国家统计局 3、指标:行政区划代码、地区、年份、地区生产总值 4、范围:31省 指标解释:地区生产总值(Regional GDP&#xf…

鸿蒙HarmonyOS开发:基于Swiper组件和自定义指示器实现多图片进度条轮播功能

文章目录 一、概述1、场景介绍2、技术选型 二、实现方案1、图片区域实现2、底部导航点设计3、手动切换 三、所有代码1、设置沉浸式2、外层Tabs效果3、ImageSwiper组件 四、效果展示 一、概述 在短视频平台上,经常可以见到多图片合集。它的特点是:由多张…

第二十八周学习周报

目录 摘要Abstract1 GFPGAN1.1 总体结构1.2 实验研究1.3 代码分析 总结 摘要 本周主要的学习内容是GFPGAN模型。GFPGAN是一种基于生成对抗网络(GAN)的模型,其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验(GFP&…

MCP(Model Context Protocol)模型上下文协议 进阶篇3 - 传输

MCP 目前定义了两种标准的客户端-服务端通信传输机制: stdio(标准输入输出通信)HTTP with Server-Sent Events (SSE)(HTTP 服务端发送事件) 客户端应尽可能支持 stdio。此外,客户端和服务端也可以以插件方…

NVIDIA DLI课程《NVIDIA NIM入门》——学习笔记

先看老师给的资料: NVIDIA NIM是 NVIDIA AI Enterprise 的一部分,是一套易于使用的预构建容器工具,目的是帮助企业客户在云、数据中心和工作站上安全、可靠地部署高性能的 AI 模型推理。这些预构建的容器支持从开源社区模型到 NVIDIA AI 基础…

物联网云平台:构建物联网生态的核心

我们常说的物联网,简称是IoT, 全称 Internet of Things。 用通俗的语言理解物联网,其实就是万事万物的互联网络。物联网概念也已经传播很多年了, 目前正在各行各业发挥力量。 要构建一个物联网生态, 我们首先想到的是智…

VS2022引入sqlite数据库交互

法一:用官网编译好的动态库(推荐) 下载所需文件 sqlite官网地址:https://www.sqlite.org/howtocompile.html 下载以下的2个压缩包 第一个压缩包 sqlite-amalgamation-xxxx.zip,xxxx是版本号,保持一致即可,这里面有sqite3.h 第…

设计模式学习[15]---适配器模式

文章目录 前言1.引例2.适配器模式2.1 对象适配器2.2 类适配器 总结 前言 这个模式其实在日常生活中有点常见,比如我们的手机取消了 3.5 m m 3.5mm 3.5mm的接口,只留下了一个 T y p e − C Type-C Type−C的接口,但是我现在有一个 3.5 m m 3.…

Markdown如何导出Html文件Markdown文件

Markdown如何导出Html文件Markdown文件 前言语法详解小结其他文章快来试试吧☺️ Markdown 导出 HTML 👈点击这里也可查看 前言 Markdown的源文件以md为后缀。Markdown是HTML语法的简化版本,它本身不带有任何样式信息。我们所看到的Markdown网页(如&…

Python安装(新手详细版)

前言 第一次接触Python,可能是爬虫或者是信息AI开发的小朋友,都说Python 语言简单,那么多学一些总是有好处的,下面从一个完全不懂的Python 的小白来安装Python 等一系列工作的记录,并且遇到的问题也会写出&#xff0c…

JMeter + Grafana +InfluxDB性能监控 (二)

您可以通过JMeter、Grafana 和 InfluxDB来搭建一个炫酷的基于JMeter测试数据的性能测试监控平台。 下面,笔者详细介绍具体的搭建过程。 安装并配置InfluxDB 您可以从清华大学开源软件镜像站等获得InfluxDB的RPM包,这里笔者下载的是influxdb-1.8.0.x86_…

STL常用容器总结

1.Vector容器特性 vector 容器是一个长度动态改变的动态数组,既然也是数组,那么其内存是一段连续的内存,具有数组的随机存取的优点。 / 1.1.vector特性总结: 1.vector 是动态数组,连续内存空间,具有随机存取效率高的…

BBP飞控板中的坐标系变换

一般飞控板中至少存在以下坐标系: 陀螺Gyro坐标系加速度计Acc坐标系磁强计Mag坐标系飞控板坐标系 在BBP飞控板采用的IMU为同时包含了陀螺(Gyro)及加速度计(Acc)的6轴传感器,故Gyro及Acc为同一坐标系。同时…

【OAuth2系列】如何使用OAuth 2.0实现安全授权?详解四种授权方式

作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 【OAuth2系列】集成微…

鸿蒙MPChart图表自定义(六)在图表中绘制游标

在鸿蒙开发中,MPChart 是一个非常强大的图表库,它可以帮助我们创建各种精美的图表。今天,我们将继续探索鸿蒙MPChart的自定义功能,重点介绍如何在图表中绘制游标。 OpenHarmony三方库中心仓 一、效果演示 以下是效果演示图&…

《新概念模拟电路》-电流源电路

电流源电路 本系列文章主要学习《新概念模拟电路》中的知识点。在工作过程中,碰到一些问题,于是又翻阅了模电这本书。我翻阅的是ADI出版的,西安交通大学电工中心杨建国老师编写的模电书。 本文主要是基于前文《新概念模拟电路》-三极管的基础…

Java实现下载excel模板,并实现自定义下拉框

GetMapping("excel/download")ApiOperation(value "模板下载")public void getUserRecordTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {OutputStream outputStream response.getOutputStream();InputStream…

C 实现植物大战僵尸(四)

C 实现植物大战僵尸(四) 音频稍卡顿问题,用了 SFML 三方库已优化解决 安装 SFML 资源下载 https://www.sfml-dev.org/download/sfml/2.6.2/ C 实现植物大战僵尸,完结撒花(还有个音频稍卡顿的性能问题,待…