Dijkstra 分流院子算法 用于分析中缀符号和产生 RPN 输出。

我正在寻找相反,一个办法把RPN入高中数学课的风格缀符号,以表示RPN表达自一个数据库奠定用户在一个可以理解的方式。

请您节省时间和不煮出来的算法你自己,只要一点我的教科书例子,我似乎无法找到。工作倒退的分流院子算法和使用我的知识有关的符号,我可能能够工作长达一个解决方案。我只是在寻找一个快捷方式,因此我没有必要重新发明车轮。

哦,请不要签这个作为"家庭作业",我 发誓 我辍学了!;-)

有帮助吗?

解决方案

由于RPN也称为后缀符号,我试过谷歌上搜索 转换"后缀到缀" 并得到了相当多的结果。首先有几个代码的例子,但我发现的 RubyQuiz项 尤其有启发性。

其他提示

如果你不担心除去多余的括号,然后以下口齿不清码会的工作:

(defun rpn-to-inf (pre)
  (if (atom pre)
      pre
      (cond ((eq (car (last pre)) 'setf)
         (list (rpn-to-inf (first pre)) '= (rpn-to-inf (second pre))))
        ((eq (car (last pre)) 'expt)
         (list (rpn-to-inf (first pre)) '^ (rpn-to-inf (second pre))))
        (t (list (rpn-to-inf (first pre)) 
             (car (last pre)) 
             (rpn-to-inf (second pre)))))))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top