中缀表达式怎么转后缀表达式

news2025/1/15 23:36:04

对于中缀表达式:1 + 2 * 3
中缀表达式是相对于人来说的,因为我们人是会判断+*的运算优先级谁高谁低
但是计算机是不会判断的,因为计算机是默认从左向右读取数据,它先遇到 + 就会计算,其结果是不对的。它不会提前看到后面还有一个 *
所以要转化成后缀表达式,才是计算机的运算方式

后缀表达式,其实是把运算符的优先级排了出来,这样就可以顺次计算了。后缀表达式也叫:逆波兰表达式

操作数的顺序不变,操作符的顺序变了(按优先级排出来了)
中缀转后缀的主要任务就是:调整运算符的优先级

在这里插入图片描述
1、遇到操作数:放入容器
2、遇到操作符:① 如果该操作符的优先级 高于栈顶的优先级或者栈为空:入栈(最后越靠近栈顶,操作符的优先级越高,越先运算)
        ② 如果该操作符的优先级 低于或者等于栈顶元素的优先级:出栈,放入容器,然后进行下一次比较(中缀表达式不向后走)
        ③ 走完之后,把栈中的元素依次放入容器

在这里插入图片描述
其他例子
在这里插入图片描述
更复杂的情况:有括号

如果遇到左括号,左括号入栈,往后走的第一个操作符的优先级一定高于栈中运算符的优先级,入栈

如果遇到右括号,就开始出栈,放入容器 循环这样,直到遇到左括号

如果遇到左括号,把左括号出栈,然后恢复正常顺序运算。
其他情况都是: 如果栈顶元素的优先级大于此时操作符的优先级 或者栈为空的情况,就入栈,否则出栈。最后如果中缀表达式走完,就把栈中的元素全部放入容器

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

使用nvm实现多个Node.js版本之间切换

使用nvm实现多个Node.js版本之间切换1.先卸载掉本系统中原有的node版本。2.去github上下载nvm安装包3.安装node常用的一些nvm命令什么是nvm? nvm是一个简单的bash脚本,它是用来管理系统中多个已存的Node.js版本。这样做主要是我的vue项目对node的版本有…

6.3、动态主机配置协议 DHCP

1、DHCP的作用 如下所示,我们如何配置用户主机,才能是用户主机正常访问网络中的 Web 服务器 即:需要给网络中的各主机正确配置 IP 地址、子网掩码、默认网关、DNS 服务器等网络相关配置信息 例如:如下所示,手工配置的…

Wind X R2 蓝牙5.2双模热插拔PCB

键盘使用说明索引(均为出厂默认值)软件支持一些常见问题解答(FAQ)首次使用测试步骤蓝牙配对规则(重要)蓝牙和USB切换键盘默认层默认触发层0的FN键配置的功能默认功能层1配置的功能默认的快捷键蓝牙参数蓝牙…

从图谱看美创,全面覆盖《数据安全产品与服务图谱2.0》

第二届数据安全治理峰会上,《数据安全产品与服务图谱2.0》(下简称:图谱2.0)正式发布。图谱2.0在原图谱框架的基础上实现了更具体系化、层次化的升级迭代,旨在进一步打通供需双方对当前主流数据安全产品与服务的认知&am…

element table数据量太大导致网页卡死崩溃

做后台项目时,一次性在表格中加载几百上千条数据,发现有时页面会崩溃。究其原因,发现是一次渲染dom太多导致卡顿。在此尝试了多种解决方法,发现最优的就是替换组件,elementUI中的表格组件el-table性能不优,…

【Linux】除了Linux基础命令外 你还应知道的命令

Linux基础命令补充一、Linux版本信息:二、云服务器的登录方法三、Linux指令1.whoami显示当前用户名2.cd加特殊符号3.stat查看文件的所有的属性4.echo用于在终端设备上输出指定字符串5.wc统计文件的字节数、单词数、行数等信息6.|管道操作符7.sort对文件内容按照ASCII码值进行排…

Node.js篇-安装与配置,基本使用,服务器,项目搭建,调试

1.安装与配置官网下载, 并配置环境变量查看安装成功/版本号: DOS命令 node -v运行JS文件: node 文件名.js2.基本使用(1)CommonJS模块化Node.js遵循了CommonJS模块化规范( e.g: 自定义模块 )使用module.exports 导出// commonjs模块化开发 function sum(){ //代码 } function…

使用Transformers 和 Tokenizers从头训练一个 language model

这是训练一个 ‘小’ 模型的demo (84 M parameters 6 layers, 768 hidden size, 12 attention heads) – 跟DistilBERT有着相同的layers & heads,语言不是英语,而是 Esperanto 。然后可以微调这个模型在下游的序列标注任务。 下载数据集 Esperant…

代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

一、参考资料有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html视频讲解: https://www.b…

2.1 面向对象

文章目录初始对象成员方法构造方法其他内置方法封装继承继承的基础语法pass复写和使用父类成员类型注解变量的类型注解函数(方法)的类型注解Union类型多态初始对象 样例: # 定义类 class Student:name Nonegender None # 创建对象 stu_1 …

谷粒商城项目之高级篇笔记(一)

目录1 商城业务1.1 商品上架1.1.1 商品Mapping1.1.2 建立product索引1.1.3 上架细节1.1.4 数据一致性1.1.5 代码实现1)先查库存(商品微服务远程调用库存微服务)2)商品上架,保存到es中(商品微服务远程调用搜…

小波分析——5.使用小波对信号去噪以及重构

文章目录假设有一个原始信号我们在前面的内容中已经介绍过,小波是什么,小波是如何对信号进行分解,以及小波对信号成分是如何分析的,今天在这篇文章,也是整个小波分析最后一个章节里,我们来谈谈小波最重要的…

Java获取上传的文件大小并且转换对文件大小进行单位转化

前言 今天产品提出来一个需求,上传文件的时候要记录文件的大小,并且保存到数据库里面。 正好借着这个机会,分享下对文件大小进行单位转化的一个方法。 获取文件大小(原字节)。 一般和前后端进行文件交互,都是通过MultipartFil…

Spring Boot常用注解,thymeleaf,数据提交

前言 Spring Boot主要解决的是在微服务的架构下简化配置(快速有效),前后端分离,快速开发。提供了快速启动,内嵌容器化web项目,开箱即用提供了默认配置,没有繁琐的xml配置和冗余代码。本文见简单…

GAMES101-图形学入门 LEC3: TRANSFORMATION-2D

文章目录上节内容回顾:本节知识概要Why study transformationModeling 模型变换Viewing 视图变换2D transformations 二维变换ScaleUniform 均匀缩放Non-Uniform 非均匀缩放Reflection Matrix 反射矩阵shear 切变rotate 旋转,默认绕(0,0&…

Wetool 一款高效免费的微信社群管理工具,检查单向好友,自动回复、群发

这是一款高效免费的微信社群管理工具,目前功能主要有客服、机器人、单删查询、自动接受好友、以及群管理的一些工具下面放一下软件功能截图需要注意的是开启此工具需要下载旧版本的微信,这个在软件安装启动页面会自动进行下载。单删改查功能这个功能适用…

python基础篇之循环语句(附加选车牌号小系统开发)

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

【CocosCreator入门】CocosCreator项目创建 | 面板介绍

本文进行创建项目流程和编辑器界面的介绍,熟悉组成编辑器的各个面板、菜单和功能按钮。 目录 一、CocosCreator创建项目 二、CocosCreator编辑器界面 2.1层级管理器 2.1.1界面介绍 2.1.2层级管理器操作 2.2资源管理器(Assets) 2.2.1界…

asp.net c#大型综合管理系统源码 OA+HR+CRM综合办公管理系统源码

分享一套大型协同办公(OAHRCRM)系统源码。 本系统是强大构建系统,为OA办公系统HR人力资源管理系统CRM客户关系管理系统集合而成,人员可以单点登入多个系统完成自己的作业,超方便实用。全套源代码提供,不封…

System Extract 步骤

纲要: 把Composition下的SWC分配到System Description 描述的CAN网络的的ECU上。 System Extract目录 1. Create System Extract 2. Map SWC to ECU instance 3. Maping System Signal to Data Element 4. Create System Extract 1. Create System Extract Ri…