数据结构--栈的引用--前中后缀表达式(后部分)

数据结构–栈的引用–前中后缀表达式(后部分)

中缀表达式转后缀表达式(手算)

中缀转后缀 \color{purple}中缀转后缀 中缀转后缀 手算方法 \color{purple}手算方法 手算方法:
①确定中缀表达式中 各个运算符的运算顺序 \color{red}各个运算符的运算顺序 各个运算符的运算顺序
②选择下一个运算符,按照 「左操作数右操作数运算符」 \color{red}「左操作数右操作数运算符」 「左操作数右操作数运算符」的方式组合成一个新的操作数③如果还有运算符没被处理,就继续②
“左优先”原则 \color{red}“左优先”原则 左优先原则:只要左边的运算符能先计算,就优先算左边的

中缀表达式转后缀表达式(机算)

初始化一个栈,用于保存 暂时还不能确定运算顺序的运算符 \color{red}暂时还不能确定运算顺序的运算符 暂时还不能确定运算顺序的运算符。从左到右处理各个元素,直到末尾。可能遇到三种情况:
①遇到 操作数 \color{red}操作数 操作数。直接加入后缀表达式。
②遇到 界限符 \color{red}界限符 界限符。遇到“(”直接入栈;遇到“)”则依次弹出栈内运算符并加入后缀表达式,直到弹出“(”为止。注意:“(”不加入后缀表达式。
③遇到 运算符 \color{red}运算符 运算符。依次弹出栈中 优先级 \color{purple}优先级 优先级高于或等于当前运算符的所有运算符,并加入后缀表达式,若碰到“(”或栈空则停止。之后再把当前运算符入栈。
∗ / 优先级高于 + − \color{pink}*/优先级高于+- /优先级高于+
按上述方法处理完所有字符后,将栈中剩余运算符依次弹出,并加入后缀表达式。

中缀表达式的计算(用栈实现)

用栈实现 \color{purple}用栈实现 用栈实现中缀表达式的计算:
初始化两个栈, 操作数栈 \color{red}操作数栈 操作数栈 运算符栈 \color{red}运算符栈 运算符栈
若扫描到操作数,压入操作数栈
若扫描到运算符或界限符,则按照“中缀转后缀”相同的逻辑压入运算符栈(期间也会弹出运算符,每当弹出一个运算符时,就需要再 弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 \color{red}弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈)

后缀表达式的计算(机算)

用栈实现 \color{purple}用栈实现 用栈实现后缀表达式的计算:
①从左往右扫描下一个元素,直到处理完所有元素②若扫描到操作数则压入栈,并回到①;否则执行③
③若扫描到运算符,则弹出两个栈顶元素,执行相应运算,运算结果压回栈顶,回到①

注意:
先出栈的是“右操作数”

栈用于存放当前暂时还不能确定运算次序的操作数

中缀表达式转后缀表达式(机算)

初始化一个栈,用于保存 暂时还不能确定运算顺序的运算符 \color{red}暂时还不能确定运算顺序的运算符 暂时还不能确定运算顺序的运算符。从左到右处理各个元素,直到末尾。可能遇到三种情况:
①遇到 操作数 \color{red}操作数 操作数。直接加入后缀表达式。
②遇到KaTeX parse error: Invalid color: '界' at position 7: \color界̲限符。遇到“(”直接入栈;遇到“)”则依次弹出栈内运算符并加入后缀表达式,直到弹出“(”为止。注意:“(”不加入后缀表达式。
③遇到 运算符 \color{red}运算符 运算符。依次弹出栈中优先级高于或等于当前运算符的所有运算符,并加入后缀表达式,若碰到“(”或栈空则停止。之后再把当前运算符入栈。
按上述方法处理完所有字符后,将栈中剩余运算符依次弹出,并加入后缀表达式。

中缀表达式的计算(用栈实现)

栈实现 \color{purple}栈实现 栈实现中缀表达式的计算:
初始化两个栈, 操作数栈 \color{red}操作数栈 操作数栈 运算符栈 \color{red}运算符栈 运算符栈若扫描到操作数,压入操作数栈
若扫描到运算符或界限符,则按照“中缀转后缀”相同的逻辑压入运算符栈(期间也会 弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 \color{red}弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈)

中缀表达式的计算(用栈实现)

用栈实现 \color{purple}用栈实现 用栈实现中缀表达式的计算:
初始化两个栈, 操作数栈 \color{red}操作数栈 操作数栈 运算符栈 \color{red}运算符栈 运算符栈若扫描到操作数,压入操作数栈
若扫描到运算符或界限符,则按照“中缀转后缀”相同的逻辑压入运算符栈(期间也会 弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 \color{red}弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈 弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈)

知识点回顾与重要考点

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

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

相关文章

datax mysql同步数据到clickhouse配置文件样例及说明

datax mysql同步数据到clickhouse配置文件样例及说明 { "job": { "content": [ { "reader": { "parameter": { "password": "…

【数据结构与算法】二叉树中从每个叶子结点到根结点的路径

题目 Qestion: 输出二叉树中从每个叶子结点到根结点的路径 数据结构与定义 #include <stdio.h> #include <stdlib.h>typedef struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right; } TreeNode;二叉树形状 核心代码 void LeafToRoot(TreeNod…

C#加载 ToolBlock简单示例

可以用visionpro的VPPVersion.exe 工具查看文件格式。 在安装路径最后一个 官方示例文件路径 简单实例 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; …

应急响应:系统入侵排查指南

目录 系统基本信息排查 Windows系统排查 Linux系统排查 CPU信息 操作系统信息 载入模块排查 用户排查 Windows系统用户排查 排查所有账户 Linux用户排查 root账户排查 查看所有可登录账户 查看用户错误的登录信息 查看所有用户最后登录信息 排查空口令账户 启…

C++初阶之类和对象(中)

类和对象&#xff08;中&#xff09; 1.类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3.析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.1 概念4.2 特征 5 运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置和后置重载 6.日期类的实现7.const成员8.取地址及const取地址操作…

QT编写的数字键盘

https://download.csdn.net/download/qq_20189555/88001237

ZVS无线输电Ltspice仿真

1 原理图 &#xff08;1&#xff09;电路分析 2 仿真结果 &#xff08;1&#xff09;TX波形 &#xff08;2&#xff09;RX波形 &#xff08;3&#xff09;负载电压波形

NSS [鹏城杯 2022]简单包含

NSS [鹏城杯 2022]简单包含 看代码觉得不就直接post flagdata://text/plain,<?php system(ls);?>行了。 但是事实上没有什么软用。 用了php://伪协议之后发现有WAF。 可以读源码 解码得到 <?php$path $_POST["flag"];if (strlen(file_get_contents(ph…

Transfomer编码器中自注意力机制、前馈网络层、叠加和归一组件等讲解(图文解释)

Transformer中的编码器不止一个,而是由一组N个编码器串联而成,一个编码的输出作为下一个编码器的输入,如下图所示,每一个编码器都从下方接收数据,再输出给上方,以此类推,原句中的特征会由最后一个编码器输出,编码器模块的主要功能就是提取原句中的特征 我们又可以将编码…

(六)矢量数据的空间分析——缓冲区分析

矢量数据的空间分析——缓冲区分析 目录 矢量数据的空间分析——缓冲区分析 1.基本概念1.1图解1.2缓冲距离1.2.1固定距离1.2.2由字段决定的距离 2.缓冲区的建立2.1操作步骤2.1.1点状要素建立缓冲区2.1.2面状要素建立缓冲区 缓冲区是一组或一类地图要素&#xff08;点、线、面&a…

在 Linux 中查找 IP 地址的 3 种简单方法

在 Linux 系统中&#xff0c;经常需要查找 IP 地址以进行网络配置、故障排除或安全管理。无论是查找本地主机的 IP 地址还是查找其他设备的 IP 地址&#xff0c;本文将介绍三种简单的方法&#xff0c;帮助你在 Linux 中轻松找到所需的 IP 地址。 总结 通过上述三种简单的方法&…

开放式耳机漏音有多大?开放式耳机和封闭式耳机哪个音质好?

什么是开放式耳机 从名字上理解就是开放样式的耳机&#xff0c;其实也确实如此&#xff0c;开放式耳机是不需要封闭耳道来传输声音&#xff0c;主要是通过耳骨振动传递或者声波震动耳膜&#xff0c;两者声音传递的方式都不用完全封闭耳道&#xff0c;可以让耳道对外界放开&…