当前位置:首页 » 多媒体相关

再一次想请教:在c语言版数据结构中,怎样将 中序表达式 转换成 前序表达式 呢?(看完回贴还是不太明!)


有位高手是这样回的:  
   
          为什么一个问题被很多次重复的提问呢?唉~~~~~~~~~  
   
  假设表达式中只有双目运算符  
  设置3个栈:运算符栈、操作数栈、结果栈(存放最后结果)  
  for(表达式第一个字符;该字符不是结束符;下一个字符)  
        {if(该字符是操作数)进操作数栈;  
          else   if(该字符是运算符)  
                {if(运算符栈为空)进运算符栈;  
                  else   if(结果栈空){该运算符进结果栈;弹出操作数栈顶2个元素进结果栈;}  
                  else   if(优先级小于运算符栈顶运算符)  
                              {while(运算符栈不空且优先级小于运算符栈顶)  
                                        {弹出运算符栈顶元素进结果栈;弹出操作数栈顶2个元素进结果栈;}  
                                该运算符进运算符栈;  
                                }  
                  else     {   弹出操作数栈顶1个元素进结果栈底;该运算符压入结果栈底;}  
                }  
          }  
   
   
  但我看完后自已试了一下,总觉得有点问题(或者是我搞不懂吧!)。  
  如果有那位知道而又想指教一下愚弟的,请回贴,先谢了!!!

推荐阅读

  • 高端数码设备全面采购之功略 [详细内容]
  • Win XP优化设置和宽带应用技巧 [详细内容]
  • 关于A675没有标配光盘的解决办法 [详细内容]
  • 装最新款导航软件!同永PQ2车载GPSGPS地图软件及方案 [详细内容]
  • 与JS斗法 也谈二手笔记本的选购技巧 [详细内容]
  • 关于按退出无法关闭播放器的解决方法 [详细内容]
  • 7英寸大屏幕纯白苹果风格Yuer P710GPS地图软件及方案 [详细内容]
  • 网友回答:
    网友:tangyongkang

    把你的程序贴出来。  
      一句一句的往下对,就会发现问题的

    .

    讨论区

    Login