2013-06-04 46 views
0

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

我尝试着将不同的算法转换成表达式树,像https://groups.google.com/forum/?fromgroups#!topic/wncc_iitb/RrgohUZ-uhw这样的表达式树,但是这样做不起作用,因为它们不担心优先级和所有。

谢谢。

+0

您可以扩展您对二叉树的要求吗?任何具体的东西......或者是你的唯一要求,即一个节点的孩子,只不过是同一个节点的后代? – ChrisCM

回答

0

简单的答案。

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

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

如果你正在寻求一个简单的解决方案而不是一个有效的解决方案,可能很容易将每个节点分解为与优先级匹配的级别,然后在二叉树折叠出明显无用的节点之后。如果你想要一个更高效的解决方案,那么你会希望在最初的扩张时更谨慎。