栈应用—中缀表达式和后缀表达式转换(原理和练习题目详解)

本文详细讲解了中缀表达式转后缀表达式及后缀表达式转中缀表达式的规则与方法,并通过实例展示了转换过程。了解这些转换技巧对于深入理解表达式解析和计算器算法至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中缀表达式转后缀表达式
  • 规则:从左到右遍历中缀表达式的每个数字和符号,如果是数字直接写出(即成为后缀表达式的一部分);若是符号,则判断与栈顶符号的优先级,若是右括号或低于栈顶符号优先级(当是右括号时候,注意输出的只是左括号以上的符号(乘除优先于加减),那么栈顶元素依次出栈并输出,同时将当前符号进栈,一直打到最终输出为止。
后缀表达式转中缀表达式
  • 从左到右遍历表达式的每个数字和符号,遇到数字就进栈,遇到符号,就将处于栈顶的两个数字出栈,和符号计算后将运算结果进栈,一直获得最终结果。
例题1

9 + (3 - 1) * 3 + 10 / 2 = 20

  • 转为后缀表达式

在这里插入图片描述

所以,转换完成的后缀表达式是: 9 3 1 - 3 * + 10 2 / +

  • 转为中缀表达式
    在这里插入图片描述
例题2

中缀表达式:(70 + 30) *20 + 10 / 2 - 3 = 2002
后缀表达式: 70 30 + 20 * 10 2 / + 3 - = 2002

例题3

中缀表达式: 10 * 3 +(3-1)* 2 - 10 / 2 = 29
后缀表达式:10 3 * 3 1 - 2 * + 10 2 / - = 29

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值