1
我有文件,如:
從文本文件中創建樹
X1根
X2根
X3 X1
X4 X3
所以我需要得到:
root - x1 - x3 - x4
root - x2
語言是Ja va
所以我認爲我需要使用遞歸,對嗎?
ADDED
於是,我就做我自己。 這個代碼工作,但並不光彩
private void findTree(List<String> lines, String item, GenericTreeNode<String> parent, int i){
if(i >= lines.size()){
try{
findTree(lines, parent.getParent().getData(), parent.getParent(), 0);
}catch(Exception ex){
print(tree.toStringWithDepth());
}
}
else if(lines.get(i).split(" ")[1].trim().equals(item)){
item = lines.get(i).split(" ")[0];
GenericTreeNode<String> child = new GenericTreeNode<String>(item);
parent.addChild(child);
lines.remove(i);
findTree(lines, item, child, 0);
}else if(item == "XXXXX"){
print (tree.toStringWithDepth());
}else if(i!=(lines.size()-1)){
findTree(lines, item, parent, i+1);
}else{
findTree(lines, parent.getParent().getData(), parent.getParent(), 0);
}
}
「XXXXX」這是在我的樹根。
看起來像你需要1)閱讀2)搜索一個位置3)附加。但實際上你的問題的答案是否定的。遞歸是一個選項,但不是必需的。 – ergonaut
我覺得假設輸入文件總是完美是不安全的。正確?像'x1 root \ n x4 x3 \ n x3 x1'可能是一個可能的文件? – Jay
好的,我添加了一些代碼 – Andrey