如何从字符串填充二叉树,java
我假设用基于如下字符串的整数填充二叉树如何从字符串填充二叉树,java,java,binary-tree,Java,Binary Tree,我假设用基于如下字符串的整数填充二叉树 [int](LT)(RT) 对于树的左侧部分,它是相同形式的表达式。与RT相同。有效字符串如下:4(2(1)(3))(6(5)(7)。如何填充此树?这不是任何类型的排序树。因此它可以用节点填充每个“级别”。感谢您的帮助。获取字符串的第一个数字,在“(”)上拆分,去掉尾随的“),递归重复。您必须为此创建一个解析器,并用解析器的指令填充某种数据结构 然后,当您的数据结构被填充时,您只需将其推入树中即可 大致如下: Structure s = Parser
[int](LT)(RT)
对于树的左侧部分,它是相同形式的表达式。与RT相同。有效字符串如下:
4(2(1)(3))(6(5)(7)
。如何填充此树?这不是任何类型的排序树。因此它可以用节点填充每个“级别”。感谢您的帮助。获取字符串的第一个数字,在“(”)上拆分,去掉尾随的“),递归重复。您必须为此创建一个解析器,并用解析器的指令填充某种数据结构
然后,当您的数据结构被填充时,您只需将其推入树中即可
大致如下:
Structure s = Parser.parse("4(2(1)(3))(6(5)(7)");
然后迭代结构
Tree binaryTree = ...
for( Instruction i : s ) {
if( i.leaf == Tree.LEFT ) {
tree.addLeft( i.value );
} else if ( i.leaf == Tree.RIGHT ) {
tree.addRight( i.value );
}
}
使用堆栈跟踪“(”和“)” 将所有“(”推到堆栈上,遇到时弹出”)
从这里开始,你只需要决定如何解释中间的内容。这只是我作业的最后一部分,主要部分是创建树实现。然后制作一个算法,用于查找和返回最大的独立节点集。我认为这一部分很容易,但我发现这一部分比较难。