栈的应用2---后缀表达式

本文介绍计算机如何通过后缀表达式进行计算的过程及中缀转后缀的算法实现。主要内容包括:针对数字和符号的进栈和出栈操作、不同运算符优先级的比较与处理方式等。

计算机是如何基于后缀表达式计算的?

eg: 931-5*+

对于数字:进栈

对于符号:

  从栈中弹出右操作数;

  从栈中弹出做操作数;

  根据符号进行运算;

  将运行结果压入栈中;

遍历结束:栈中唯一数字为计算结果;

 中缀转后缀算法:

对于数字直接输出;

对于符号:

  左括号:进栈;

  运算符号(分两种情况:) 与栈顶比较优先级

    若栈顶符号优先级低:此时符号进栈(默认栈顶若是做括号,左括号优先级最低);

    若栈顶符号优先级不低:将栈顶符号弹出并输出,之后进栈。

  右括号: 将栈顶符号弹出并输出,知道匹配到左括号;

遍历结束:

  将战中的所有符号弹出并输出。

 

 

  

转载于:https://www.cnblogs.com/584709796-qq-com/p/5824600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值