从文本文件创建树

时间:2015-10-13 18:07:33

标签: java tree

我的文件如下:

  

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'它是我树上的根。

1 个答案:

答案 0 :(得分:0)

不,您不必使用递归来解决此问题。您可以使用迭代解决方案解决此问题

例如,您可以使用列表列表结构。 (在每个找到的根目录中创建一个列表)