我有一个通用的 N-ary表达式树,我希望将其转换为二叉树。有没有明确定义的算法来做同样的事情?
我尝试过将'N-ary树转换为表达式树的不同算法,如https://groups.google.com/forum/?fromgroups#!topic/wncc_iitb/RrgohUZ-uhw,但那不会起作用,因为他们不担心优先级和所有。
感谢。
答案 0 :(得分:0)
简单回答。
步骤1:将具有不同优先级的N-ary表达式树转换为N-ary树,其中每个节点只有一个优先级。
步骤2:将该树转换为二叉树。
如果您正在寻求一个直接的解决方案而不是一个有效的解决方案,那么将每个节点分解为与您的优先级匹配的级别可能很容易,然后在您使用二叉树后,将明显无用的节点拆除。如果您想要一个更有效的解决方案,那么您将希望在初始扩展中更加谨慎。