当前位置: 首页 > news >正文

后缀表达式转中缀表达式(非常简单易懂)

介绍

最近刷题,看到了很多后缀转中缀的题目,查了一些网上的教程,在这里做了一个简单详细的说明。关于中缀转后缀请看我的另外一篇博客。

后缀转中缀

举个例子~对于后缀表达式ABCD−∗+EF/−ABCD-*+EF/-ABCD+EF/,它的中缀表达式该怎么求呢?其实很简单,下面将会一步一步讲解:

1、把后缀表达式逐个元素的压入到栈中,当压入的都是字符,则不采取任何操作,当压入的是运算符,则把运算符下面的两个数字弹出和运算符进行运算,然后把结果继续压入到栈中。
2、对后缀表达式中的所有元素执行该操作,直到结束。

ABCD−∗+EF/−ABCD-*+EF/-ABCD+EF/来说,首先把ABCDABCDABCD逐渐压入到栈中,当再次压入−-的时候,这时候−-下面是CDCDCD,那么执行C−DC-DCD,并把结果K1K_1K1压入到栈中,这时栈里有ABK1ABK_1ABK1,继续把*压入到栈中,这时有ABK1∗ABK_1*ABK1,此时执行操作B∗K1B*K_1BK1,设结果为K2K_2K2,把K2K_2K2压入到栈中,此时栈中有AK2AK_2AK2,继续向栈中压入+++,此时栈中有AK2+AK_2+AK2+,执行A+K2A+K_2A+K2,设结果为K3K_3K3,将K3K_3K3压入到栈中,此时栈中只有K3K_3K3了,继续往里压入EF/,此时栈中有K3EF/K_3EF/K3EF/,接着的操作和以上完全相同,所以最终的中缀计算过程为:

A+B∗(C−D)−E/FA+B*(C-D)-E/FA+B(CD)E/F

后缀转中缀就是这么简单~~~


http://www.taodudu.cc/news/show-1782035.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 给定一列非负整数,求这些数连接起来能组成的最大的数。
  • 努力找工作中。。。
  • 手撕代码之快速排序算法(简单明了)
  • 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
  • 小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。
  • 牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有,,,
  • C++实现选择排序
  • C++实现希尔排序
  • 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示,,,
  • CatBoost之算法解析(Kaggle常用模型)
  • ElasticNet算法解析
  • SVM支持向量机算法详解
  • SVM中的一些关键点解析
  • 朴素贝叶斯算法解析
  • Kmeans算法解析(非常详细)
  • DBSCAN(自适应密度聚类)算法解析
  • ID3、C4.5、CART决策树算法解析(关键内容讲解)
  • 面试之手撕BP反向传播
  • XGBoost算法解析(非常详细)
  • 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  • 最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
  • 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。
  • 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
  • 深度学习中网络在训练时不收敛的原因
  • 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。(C++实现)
  • 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
  • 两个大数之间的乘积计算,string1=123456789...76,string2=23456...8957,求模拟计算机计算这两个数字的乘积。(C++实现)
  • 非递归方式对二叉树进行前序、中序、后序遍历(C++实现)
  • 最大矩形面积(C++实现)
  • 给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度