我的文件如下:
x1 root
x2根
x3 x1
x4 x3
所以我需要得到:
root - x1 - x3 - x4
root - x2
语言是Java 所以我想我需要使用递归,我是对的吗?
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'它是我树上的根。
答案 0 :(得分:0)
不,您不必使用递归来解决此问题。您可以使用迭代解决方案解决此问题
例如,您可以使用列表列表结构。 (在每个找到的根目录中创建一个列表)