将N-ary表达式树转换为二叉树

时间:2013-06-04 06:53:46

标签: java algorithm expression binary-tree

我有一个通用的 N-ary表达式树,我希望将其转换为二叉树。有没有明确定义的算法来做同样的事情?

我尝试过将'N-ary树转换为表达式树的不同算法,如https://groups.google.com/forum/?fromgroups#!topic/wncc_iitb/RrgohUZ-uhw,但那不会起作用,因为他们不担心优先级和所有。

感谢。

1 个答案:

答案 0 :(得分:0)

简单回答。

步骤1:将具有不同优先级的N-ary表达式树转换为N-ary树,其中每个节点只有一个优先级。

步骤2:将该树转换为二叉树。

如果您正在寻求一个直接的解决方案而不是一个有效的解决方案,那么将每个节点分解为与您的优先级匹配的级别可能很容易,然后在您使用二叉树后,将明显无用的节点拆除。如果您想要一个更有效的解决方案,那么您将希望在初始扩展中更加谨慎。

相关问题