Fred.Orange

首页 CNDEV 网志 联络 (RSS 2.0) (Atom) 登录
  随笔 124 :: 收藏 2 :: 评论 0 :: 寻迹: 0

随笔

随笔归档

收藏

图库

To me

开发论坛

魔兽论坛

去朋友的线

 

中缀算术表达式转后缀算术表达式


  算法:

     1 读入运算对象,直接输出

     2 ( 运算符进栈

     3 ) 运算符,栈内的最上一个( 以上的运算符退栈,(也退栈
    
     4 读入运算符,进入运算栈
     
       4.1 后进栈的运算符 > 先进栈的运算符,运算符进栈  (优先级比较)
    
       4.2 后进栈的运算符 <= 先进栈的运算符,将栈内的运算符退栈输出,再进栈


     5 # 结束符


   (tj 课堂)


   
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

1
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

 

  运算符栈       输出串

 


 
                   3
 
2
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

   

  运算符栈       输出串

 


 
   +              3

 

3
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

      

  运算符栈       输出串

 


 
   +              3 4

 

4
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

         

  运算符栈       输出串

 


   / 
   +              3 4


5
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

           

  运算符栈       输出串

 

   (
   / 
   +               3 4


6
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                

  运算符栈       输出串

 

   (
   / 
   +               3 4 25


7
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                   

  运算符栈       输出串


   -
   (
   / 
   +               3 4 25


8
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                      

  运算符栈       输出串

   (
   -
   (
   / 
   +               3 4 25


9
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                         

  运算符栈       输出串

   (
   -
   (
   / 
   +               3 4 25 6


10
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                            
 
  运算符栈       输出串
  
   *
   (
   -
   (
   / 
   +               3 4 25 6

11
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                               
 
  运算符栈       输出串
  
   *
   (
   -
   (
   / 
   +               3 4 25 6 5


12
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                                  
 
  运算符栈       输出串
  


   -
   (
   / 
   +               3 4 25 6 5 *


12
  3 + 4 / ( 25 - ( 6 * 5 ) * 8 #

                                     
 
  运算符栈       输出串
  

 


   / 
   +               3 4 25 6 5 * -


13
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                                        
 
  运算符栈       输出串
  

 

  
   * 
   +               3 4 25 6 5 * - /

14
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                                            
 
  运算符栈       输出串
  

 

   
   * 
   +               3 4 25 6 5 * - / 8


15
  3 + 4 / ( 25 - ( 6 * 5 ) )  * 8 #

                                              
 
  运算符栈       输出串
  

 


    
                  3 4 25 6 5 * - / 8 * +

 

 

 

排版不好, ↑每一步移动一个字符

 


 
 
 

posted on 2005-10-13 22:50

Feedback

# 回复: 中缀算术表达式转后缀算术表达式 2005-10-27 13:46:00 天涯浪子
很好
语言如何实现

# 回复: 中缀算术表达式转后缀算术表达式 2005-10-27 14:31:00 pal
1 构建一个运算符优先级的表
2 构建一个栈

  用数值表达式示例,要一般的还要词法分析


# 回复: 中缀算术表达式转后缀算术表达式 2007-03-17 13:47:00 求学者
有幸看到这篇文章,写得太好,太细致了!谢谢前辈!

# 回复: 中缀算术表达式转后缀算术表达式 2008-11-02 12:36:00 yangjw
不错

发表评论

标题:  
署名:  
链接:
内容:
验证码: