算法__中缀表达式转后缀表达式

news2024/10/6 14:28:08

文章目录

  • 概念
  • 算法
    • 中缀转后缀
      • 案例讲解
    • 后缀算值
      • 案例讲解

概念

中缀表达式就是日常生活中遇到的运算表达式,例如a*(b-c);
后缀表达式则是另一种运算表达式,其特点在于运算符在对象后,且表达式中没有括号,例如abc-*

算法

中缀转后缀

从左向右一次扫描中缀表达式,并针对不同的字符类型执行不同的操作:

  • 数字时
    直接追加到后缀表达式列表后

  • 操作符时
    当是操作符时,首先要和操作符栈顶元素进行优先级比较:
    – 栈顶元素为空或(时,操作符入栈
    – 当操作符大于栈顶元素时,将操作符入栈
    – 当操作符小于等于栈顶元素时,将栈顶元素出栈,并追加到后缀表达式列表后。循环执行比较的过程,直到操作符大于栈顶元素或栈顶元素为空时,将操作符入栈。

  • 括号时
    当是括号时,需要考虑是左括号还是有括号:
    – 左括号时,将左括号入栈操作符栈
    – 右括号时,将操作符栈顶元素依次出栈,追加到后缀表达式列表后,直到遇到左括号(左括号也得出栈但是不加入后缀表达式列表)

案例讲解

在这里插入图片描述

后缀算值

从左向右遍历中缀表达式列表,并针对不同的元素类型进行不同的操作:

  • 数字时
    将数字入栈操作数栈
  • 操作符时
    出栈栈顶元素作为右操作数,再出栈栈顶元素作为左操作数,进行根据操作符具体内容进行计算,并将结果入栈操作数栈

当遍历中缀表达式列表时,栈中的最后一个元素就是计算结果。

案例讲解

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DOM4J解析.XML文件

<?xml version"1.0" encoding"utf-8" ?> <books><book id"SN123123413241"><name>java编程思想</name><author>华仔</author><price>9.9</price></book><book id"SN1234…

发票识别神器推荐,告别繁琐手动录入,轻松管理财务

随着数字化时代的到来&#xff0c;越来越多的企业和个人开始寻求自动化处理各种繁琐任务的方式。其中&#xff0c;发票识别就是一个常见且具有挑战性的任务。发票识别是指将纸质或电子形式的发票转化为结构化的数据&#xff0c;以便进一步处理和分析。在过去&#xff0c;人工进…

【Qt QML】Qt Linguist使用方法

1. 简介 应用开发过程中&#xff0c;有时候需要翻译成多种语言&#xff0c;例如&#xff1a;将界面上所有中文翻译成英文&#xff0c;以适应国外市场。 针对多语言切换需求&#xff0c;Qt有一个Qt Linguist解决方案。 在所有需要翻译的字符串处使用qsTr()函数&#xff0c;Qt…

负采样:如何高效训练词向量

Negative Sampling 1.何为负采样 负采样是一种用于训练词嵌入模型的采样方法&#xff0c;特别适用于处理大规模词汇表的情况。负采样的目标是降低计算成本并改善模型的性能&#xff0c;同时有效地训练词向量。 2.为什么需要负采样 在传统的词嵌入模型中&#xff0c;如Word…

CleanMyMac X2024讲解及如何下载?

您是否曾经为Mac电脑的性能下降、存储空间不足而烦恼&#xff1f;是否希望有一个简单而高效的解决方案来优化您的Mac系统&#xff1f;那么&#xff0c;我向您介绍一款非常出色的工具&#xff1a;CleanMyMac X。它能够轻松处理这些问题&#xff0c;并让您的Mac恢复到最佳状态。 …

C++前缀和算法的应用:向下取整数对和 原理源码测试用例

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 向下取整数对和 给你一个整数数组 nums &#xff0c;请你返回所有下标对 0 < i, j < nums.length 的 floor(nums[i] / nums[j]) 结果之和。由于答案可能会…

2023-10-17 LeetCode每日一题(倍数求和)

2023-10-17每日一题 一、题目编号 2652. 倍数求和二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正整数 n &#xff0c;请你计算在 [1&#xff0c;n] 范围内能被 3、5、7 整除的所有整数之和。 返回一个整数&#xff0c;用于表示给定范围内所有满足约束条件的数…

深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识

文章目录 &#x1f31f; 技术架构&#xff1a;深度学习推荐系统的经典技术架构长啥样&#xff1f;&#x1f34a; 一、深度学习推荐系统的技术架构&#x1f34a; 二、基于用户行为的推荐&#x1f34a; 三、基于多模态数据的推荐&#x1f34a; 四、基于知识图谱的推荐 &#x1f3…

CEC2023:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023(提供MATLAB代码及参考文献)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法&#xff08;Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Se…

【Overload游戏引擎细节分析】Lambert材质Shader分析

一、经典光照模型&#xff1a;Phong模型 现实世界的光照是极其复杂的&#xff0c;而且会受到诸多因素的影响&#xff0c;这是以目前我们所拥有的处理能力无法模拟的。经典光照模型冯氏光照模型(Phong Lighting Model)通过单独计算光源成分得到综合光照效果&#xff0c;然后添加…

Modelsim无法生成LICENSE的问题

按照网上的破解教程&#xff0c;将mgls.dll和mgls64.dll属性都是去掉只读后&#xff0c;点击patch64_dll.bat文件生成LICENSE&#xff0c;发现在弹出的对话框中一直提示找不到其文件&#xff0c;无法正常生成LICENSE。 解决方法&#xff1a; 1.按winR键或者在电脑搜索界面中输…

C/C++ const相关 常量指针 常指针 常指针常量 顶层底层const

文章目录 前言const限定符初始化const引用指针和const顶层和底层const总结 前言 在看const相关内容的时候&#xff0c;对const的一些概念还存在部分疑惑&#xff0c;容易搞混&#xff0c;尤其是在变量声明这种情况下。 这篇博客就主要写一下const的相关。 const限定符 const主…

npm 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

一、报错&#xff1a; npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c; 然后再试一次。 所在位置 行:1 字符: 1npm init -y~~~ CategoryInfo : ObjectNotFo…

✔ ★【备战实习(面经+项目+算法)】 10.21学习时间表(总计学习时间:5h30min)(算法刷题:7道)

✔ ★【备战实习&#xff08;面经项目算法&#xff09;】 坚持完成每天必做如何找到好工作1. 科学的学习方法&#xff08;专注&#xff01;效率&#xff01;记忆&#xff01;心流&#xff01;&#xff09;2. 每天认真完成必做项&#xff0c;踏实学习技术 认真完成每天必做&…

模拟量开关量防抖算法(模拟量超限报警功能块)

模拟量信号的防抖,除了了可以采用延时方法。还可以采用死区过滤器实现,死区过滤器详细算法解读和完整源代码,请查看下面文章博客: PLC信号处理系列之死区滤波器(DeadZone)-CSDN博客(*死区滤波器*)ELSErValue:=rX;END_IF;博途PLC信号处理系列之限幅消抖滤波_RXXW_Dor的博…

ucos练习

文章目录 简单实验在开始任务中创建优先级不同的多个任务使用信号量进行同步 UCOS 硬件实现任务管理任务调度 zynq ucos 简单实验 在开始任务中创建优先级不同的多个任务 int main() {UCOSStartup(MainTask);return 0; }void MainTask (void *p_arg) {OS_ERR os_err;…

42905-2023 碳化硅外延层厚度的测试 红外反射法

1 范围 本文件描述了采用红外反射法测试碳化硅外延层厚度的方法。 本文件适用于 n 型掺杂浓度大于110⁸ cm⁻ 的碳化硅衬底上同质掺杂浓度小于110⁵ cm⁻ 的 同质碳化硅外延层厚度的测试&#xff0c;测试范围为3μm&#xff5e;200μm。 2 规范性引用文件 下列文件中的内容…

Go并发编程之一

一、前言 新年学新语言Go系列文章已经完结&#xff0c;用了最简单的例子去了解Go基础语法&#xff0c;但Go最牛B的是它对并发的友好支持&#xff0c;每一门语言都有它自己独特的优势&#xff0c;如Java适合大型工程化项目&#xff0c;Python适合做数据分析及运维脚本&#xff0…

我单方面宣布:腾讯云服务器优惠价格(双11特价)

2023腾讯云双十一服务器优惠价格表多少钱一年&#xff1f;轻量服务器2核2G3M、2核2G4M、2核4G5M、4核8G12M、8核16G18M、16核32G28M和云服务器CVM标准型S5实例优惠价格&#xff0c;腾讯云百科今年双11服务器价格会在当前的价格基础上享受个9折优惠&#xff0c;可领券 https://c…

42911-2023 碳纤维增强复合材料 密封压力容器加速吸湿和过饱和调节方法

1 范围 本文件描述了碳纤维增强复合材料加速吸湿和过饱和调节的方法&#xff0c;该方法在温度高于100 ℃但低 于试验材料玻璃化转变温度(T) 的饱和水蒸气密封压力容器中进行。 本文件适用于玻璃化转变温度大于150℃的热固性碳纤维增强复合材料。热塑性碳纤维增强复合 材料也…