首页 > 编程语言 >栈的应用----中缀表达式转后缀表达式的算法

栈的应用----中缀表达式转后缀表达式的算法

时间:2022-10-05 16:12:32浏览次数:54  
标签:运算符 优先级 中缀 后缀 ---- 算法 表达式

前提

一个中缀表达式可以对应多个后缀表达式,机器算法得出的是性质最好的左优先的后缀表示式。

 

算法核心思想

1、一切过程皆是数据。

2、一个中缀表达式的操作数,左右两边都各有一个符号,这个数要么先参与左边的符号运算,要么先参与右边的符号运算,具体视优先级情况而定。

 

3、中缀表达式的界定符,即括号,规定了最高的优先级,相当于在括号内先递归调用一次无括号算法,然后再将返回的数字参与到无括号算法当中,相当于是一次无括号转换算法的递归调用。

 

三种情况

 

 

注意 ,这里的ABC既可以指一个操作数,也可以指一个多操作数和多运算符构成的式子,每次经过一次运算后就把运算元素看成一个整体,最终就会简化为只有三种情况

1、优先级相同,先输出哪个都行,但是由于左优先原则先输出左边的

2、优先级前小后大,不弹栈,因为后面的优先级更高需要先执行,需要压栈

3、优先级前大后小,必须弹栈,因为要让优先级高的运算符先执行

4、括号相当于一次递归调用

算法具体流程

1、遇到操作数。直接加入后缀表达式(因为后缀表达式和中缀表达式的操作数顺序一样)

2、遇到运算符。依次弹出栈中优先级高于或等于当前运算符的所有运算符(),如果遇到(或栈空则停止。之后再把当前运算符入栈。

3、遇到界限符。遇到(直接入栈,遇到)则依次弹出栈内运算符并加入后缀表达式,直到弹出(为止。((不加入后缀表达式)

 

标签:运算符,优先级,中缀,后缀,----,算法,表达式
From: https://www.cnblogs.com/EeiKo/p/16755716.html

相关文章

  • SAS - Macro(二)常用宏函数
    1.%str 和%nrstr%str(character-string)%nrstr(character-string)这两个函数属于Macroquotingfunction,作用是:在宏编译时,当存在特殊字符影响到宏编译的结......
  • LeetCode 03 - 链表
    707.设计链表设计链表的实现,您可以选择使用单链表或双链表。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回1。addAtHead(val......
  • 10.5 模拟赛
    \(\rmNOIP\)模拟赛\(\rmDate:10.5\)上次真是太变态了,这次就平和许多另外,不要在意accoders那丧心病狂的评测机速度了今天4道都是CF原题\(T1\)CF1252G一看上去居......
  • 电脑基础知识之显卡
    前言本系列文章是为准备自己组装台式机的小伙伴写的关于中央处理器CPU、主板、显卡等部分的参考资料。一、简介显卡又称显示卡、视频卡、视频适配器、图形卡、图形适配......
  • 组装电脑基础知识之电源
    前言本系列文章是为准备自己组装台式机的小伙伴写的关于中央处理器CPU、主板、显卡等部分的参考资料。一、简介计算机电源的主要作用是将普通交流电转为直流电,再通过斩......
  • Little Snitch 4 for Mac小飞贼系统安全防火墙软件中文版
    LittleSnitch4forMac是应用在mac上的一款小飞贼系统安全防火墙软件,可快速的扫描您电脑,并且进行清除,当一个程序试图建立一个传出的互联网连接时,LittleSnitch中文版下载......
  • 黑豹招聘|SLAM、三维视觉算法工程师等岗位(校招/社招/实习)
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。公司介绍陕西黑豹高科技术有限公司是一家军民融合企业,专注于移动视觉感知,实......
  • 梅卡曼德招聘|3D视觉、机器人算法、相机软件工程师等多岗位
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。岗位汇总3D视觉算法工程师立体视觉算法工程师深度学习算法工程师机器人算法......
  • 三星招聘|计算机视觉和机器学习、视觉算法工程师(校招/社招/实习)
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。三星电子中国研究院招聘信息公司介绍:三星电子中国研究院是三星电子在华投资......
  • MYSQL学习之数据库设计三范式
    (一)什么是设计库设计范式?  数据库表的设计依据,从而进行数据表的设计。(二)范式内容I.第一范式:要求任何一张表必须有主键,每一个字段原子性不可再分。II.第二范式:建立在第一范......