我想基于这样的字符串填充二叉树。如何从一个字符串填充二叉树,java
[int](LT)(RT)
LT表示树的左侧部分是相同的形式。和RT一样。有效的字符串应该是这样的:4(2(1)(3))(6(5)(7)
。我如何填充这棵树?这不是任何种类的排序树。所以它可以用节点填充每个“级别”。谢谢你的帮助。
我想基于这样的字符串填充二叉树。如何从一个字符串填充二叉树,java
[int](LT)(RT)
LT表示树的左侧部分是相同的形式。和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);
}
}
:-O ............ – OscarRyz 2009-10-15 22:55:37
使用堆栈跟踪的“(”和“)”
推所有的“(”压入堆栈或弹出,当你遇到“)”。
从那里,你只需要决定如何解释自己之间的东西。
这只是我作业的最后部分,主要部分是创建树的实现。然后制定一个查找和返回最大独立节点集的算法。我认为这部分会很容易,但我觉得这很难。 – Algific 2009-10-15 22:07:58