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,压入栈中
④ 表达式结束,栈顶为计算结果

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真,仿真输出燃料电池中氢氧元素含量变化以及生成的H2O变化情况。 2.系统仿真结果 3.核心程序与模型 版本…

k620老显卡,装cuda.等。

CUDA安装教程(超详细)-CSDN博客 1.下载支持12.0以上的驱动 NVIDIA RTX Driver Release 550 R550 U12 (553.50) | Windows 11 解压。安装。一路下一步。查看结果 2.下载 cuda CUDA Toolkit Archive | NVIDIA Developer 安装cuda时,第一次…

【数学建模笔记】评价模型-基于熵权法的TOPSIS模型

视频课地址:https://www.bilibili.com/video/BV1eRyVYUEhg 本系列文章和课程一样,只使用Python实现,好久没玩数学建模了 国赛中不能再用TOPSIS,可以做辅助算法。 1. 算法原理 熵权TOPSIS方法是一种结合熵权法和TOPSIS的决策分析…

当今世界如何减少暴戾之气和矛盾纷争

《消暴戾、减纷争》(一) 暴戾之气常见于陌生人之间、纷争矛盾常见于与陌生人、同事、朋友、家人之间,总之就是一切人际关系、交际 常见案例:路怒症、住户与外卖小哥的纷争,同事、朋友、家人之间的矛盾 小吵还好&#…

【情感】程序人生之情感关系中的平等意识(如何经营一段长期稳定的关系 沸羊羊舔狗自查表)

【情感】程序人生之情感关系中的平等意识(如何经营一段长期稳定的关系 & 沸羊羊舔狗自查表) 文章目录 1、情感关系中的平等意识2、如何经营一段长期稳定的关系(避免左倾 | 敬畏与担当)3、沸羊羊/舔狗自查表(避免右…

让css设置的更具有合理性

目录 一、合理性设置宽高 二、避免重叠情况,不要只设置最大宽 三、优先使用弹性布局特性 四、单词、数字换行处理 五、其他编码建议 平常写css时,除了遵循一些 顺序、简化、命名上的规范,让css具有合理性也是重要的一环。 最近的需求场…

Go小技巧易错点100例(二十一)

本篇内容: errors.Is方法与两种方式进行error比较 在Go语言中,处理错误(error 类型)时,errors.Is 和直接使用 操作符进行错误比较,虽然看起来都用于比较错误,但实际上它们有着根本的不同。这主…

【服务器项目部署】✈️将本地项目部署到服务器(二)!

目录 👋前言 👀一、功能调整 🌱二、服务部署 💞️三、代码调整 🍻四、章末 👋前言 小伙伴们大家好,上篇文章本地实践了如何将本地项目部署到服务器上,从服务器的选择、服务器环境…

Kafka消息队列

目录 前置内容常用脚本说明和示例描述与定义部分术语说明两种模式点对点模式发布订阅模式 topic主题命令行操作指令生产者Broker消费者 前置内容 队列: 先进先出 应用: 大数据中主要用于离线和实时处理 流程: Flume正常获取数据,…

如何使用 Ansys OptiSlang 同时运行多个参数化设计研究

了解如何通过使用 OptiSLang 同时运行多个参数化设计研究来提高工作效率。 了解参数化设计研究的重要性 参数化设计研究在工程和设计过程中起着至关重要的作用。通过改变输入参数,工程师可以探索不同设计选择的效果,并优化其设计以满足性能、成本或其他…

Nginx (40分钟学会,快速入门)

一、什么是Nginx ? 可以做什么 ? Nginx 是高性能的 HTTP 和反向代理的 web 服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50000个并发的连接数.Nginx特点就是内存少,并发能力强。事实上…

【Rust自学】10.6. 生命周期 Pt.2:生命周期的语法与例子

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 10.6.1. 生命周期标注语法 生命周期的标注并不会改变引用的生命周期长度。如果某个函数它制定了泛型生命周期参数,那么它就可…

【Android项目学习】3. MVVMHabit

项目链接 文章目录 一. 项目结构1. 项目整体划分2. 模块细分 二. Android知识点学习1. registerActivityLifecycleCallbacks方法2. 一. 项目结构 1. 项目整体划分 MVVMHabit是以谷歌DataBindingLiveDataViewModel框架为基础,整合OkhttpRxJavaRetrofitGlide等流行…

【大模型】7 天 AI 大模型学习

7 天 AI 大模型学习 Day 3 今天,我们要一起学习大模型微调了 ~ 包括:大模型微调领域概览、Lora微调 等 ~ 文章目录 7 天 AI 大模型学习 Day 3大模型微调概览大模型项目 pipeline提示词工程 Prompt EngineeringIn-context Learning…

密码学精简版

密码学是数学上的一个分支,同时也是计算机安全方向上很重要的基础原理,设置密码的目的是保证信息的机密性、完整性和不可抵赖性,安全方向上另外的功能——可用性则无法保证,可用性有两种方案保证,冗余和备份&#xff0…

DeepSeek-V3 正式发布,已在网页端和 API 全面上线,性能领先,速度飞跃。

DeepSeek-V3 在推理速度上相较历史模型有了大幅提升。在目前大模型主流榜单中,DeepSeek-V3 在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。 简介 DeepSeek-V3是一个强大的混合专家 (MoE) 语言模型,总共有 671B 个参数,…

图像超分辨新SOTA!南洋理工提出InvSR,利用大型预训练扩散模型图像先验来提高 SR 性能, 登上Huggingface热门项目。

南洋理工大学的研究者们提出了一种基于扩散反演的新型图像超分辨率 (SR) 技术,可以利用大型预训练扩散模型中蕴含的丰富图像先验来提高 SR 性能。 该方法的核心是一个深度噪声预测器,用于估计前向扩散过程的最佳噪声图。一旦训练完成,这个噪…

MySQL低版本没有函数row_number() over的解决方案

最近在维护老项目时,需要对历史数据做分析取出分区数据中的第一条,无奈因为MySQL版本过低,无法使用函数row_number() over,苍了个天~ 不过这点小事怎么可能难倒我们这群考古专家呢,在此分享一下解决方案。 主要原因是问…

贵州省贵安新区地图+全域数据arcgis格式shp数据矢量路网地名+卫星影像底图下载后内容测评

贵州省贵安新区地图全域数据arcgis格式shp数据矢量路网地名卫星影像底图 贵安新区地图是一款基于ArcGIS格式的地理信息系统数据集,包含2022年3月更新的详尽矢量路网、地名信息以及卫星影像底图。这款数据集是针对贵安新区这一特定区域设计的,对于规划、…

npm install --global windows-build-tools --save 失败

注意以下点 为啥下载windows-build-tools,是因为node-sass4.14.1 一直下载不成功,提示python2 没有安装,最终要安装这个,但是安装这个又失败,主要有以下几个要注意的 1、node 版本 14.21.3 不能太高 2、管理员运行 …