我想基於這樣的字符串填充二叉樹。如何從一個字符串填充二叉樹,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