Algorithm 如何将所有可能的树结构置换为二进制表达式树的固定叶数?

Algorithm 如何将所有可能的树结构置换为二进制表达式树的固定叶数?,algorithm,tree,Algorithm,Tree,如何为二叉树的固定叶数排列所有可能的树结构? 哪种算法可以构建所有可能的树结构? 所有可能的树结构的数目是多少 对于二元表达式树,字母表必须是叶 例如(a+b)*c 叶子的数目是3 我们想置换到其他结构,例如 * a + b c 我想修复顺序,相同的顺序,因为我将在后面的过程中排列操作符节点。只是期待结构。操作员节点的数量是动态的 如果你想挑战更多

如何为二叉树的固定叶数排列所有可能的树结构? 哪种算法可以构建所有可能的树结构? 所有可能的树结构的数目是多少

对于二元表达式树,字母表必须是叶

例如(a+b)*c

叶子的数目是3

我们想置换到其他结构,例如

                   *            
                 a   +   
                    b  c

我想修复顺序,相同的顺序,因为我将在后面的过程中排列操作符节点。只是期待结构。操作员节点的数量是动态的

如果你想挑战更多,你可以使用动态顺序 我还想知道动态排序算法

现在试着先确定顺序


我注意到的另一个限制是,每个内部节点都应该有左叶和右叶

我的想法是在每个级别递归交换左叶和右叶节点,但每次交换时都要保存左叶和右叶
我不知道是否正确,但我觉得没有遗漏

请您详细解释一下您的问题。每个结构的叶片顺序是否必须相同?(如您的示例中所示)我想修复顺序,相同的顺序,因为我将在后面的过程中置换操作符节点。只是期待结构。操作符节点的数量是动态的。我相信标签遗传算法在这个问题上是错误的。@Avinash,想象一下一个游戏,你有几个输入数字和一个输出数字。您的任务是找到一个算术表达式,其结果尽可能接近给定的输出数。请参阅本页了解一个塞尔维亚问答游戏:
                   *            
                 a   +   
                    b  c