如何用C语言实现中缀表达式到后缀表达式的转换示例详解?

2026-04-12 10:440阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计720个文字,预计阅读时间需要3分钟。

如何用C语言实现中缀表达式到后缀表达式的转换示例详解?

单目数加减乘除+例子:2+3*(4-9)+定义一个栈内优先级+运算符优先级++、-、*、/ +(+1)6+

单位数加减乘除

例如:2+3*(4-9)

定义一个栈内优先级

运算符号优先级+、-3*、/5(1)6#0

定义一个栈外优先级

运算符号优先级+、-4*、/2(6)1#0

整个过程如下:

首先将#入栈,这是为了让运算符与栈内的符号进行比较是否入栈,否则无法判断

  1. 2为数字,直接输出
  2. +和#进行运算符比较,因为+的优先级大于#,入栈
  3. 3为数字,直接输出
  4. (和+进行比较,(的优先级比+大,将+取出输出,将(入栈
  5. 4为数字,直接输出
  6. -的优先级比’(‘大,直接入栈。注意:此时的’('为栈内优先级
  7. 9为数字。
阅读全文

本文共计720个文字,预计阅读时间需要3分钟。

如何用C语言实现中缀表达式到后缀表达式的转换示例详解?

单目数加减乘除+例子:2+3*(4-9)+定义一个栈内优先级+运算符优先级++、-、*、/ +(+1)6+

单位数加减乘除

例如:2+3*(4-9)

定义一个栈内优先级

运算符号优先级+、-3*、/5(1)6#0

定义一个栈外优先级

运算符号优先级+、-4*、/2(6)1#0

整个过程如下:

首先将#入栈,这是为了让运算符与栈内的符号进行比较是否入栈,否则无法判断

  1. 2为数字,直接输出
  2. +和#进行运算符比较,因为+的优先级大于#,入栈
  3. 3为数字,直接输出
  4. (和+进行比较,(的优先级比+大,将+取出输出,将(入栈
  5. 4为数字,直接输出
  6. -的优先级比’(‘大,直接入栈。注意:此时的’('为栈内优先级
  7. 9为数字。
阅读全文