gpt4 book ai didi

java - 如何在Java中递归地获取树结构的所有叶子

转载 作者:行者123 更新时间:2023-12-02 07:56:09 24 4
gpt4 key购买 nike

我有一个树节点的数据库表,如下所示。我想用 Java 用这些树节点创建一个 ArrayList。 Java 中的 Arraylist 将以递归格式递归获取所有树节点。

输入:

数据库表

Name            ID      Parent_ID
Parent 1
Child-1 2 1
Child-1.1 3 2
Child-1.1.1 4 3
Child-2 5 1
Child-3 6 1
Child-1.1.1.1 7 4
Child-1.2 8 2

我想以下面的 Java 格式创建上表的 ArrayList,其中 Sub 是子节点列表,如果没有子节点则 Sub 为 Null。

public class Node {

private String id;
private String name;
private String type;
private String value;
private List<Node> sub;
}

输出:

  1. 家长
    • Child-1
      • 子级1.1
        • 子级1.1.1
          • 子-1.1.1.1
      • 子级1.2
    • Child-2
    • Child-3

有人可以帮忙用 Java 创建一个递归函数来实现上述功能吗?

最佳答案

递归函数:

public void printTree(Node tree,int num)
{
if(tree==null || tree.getSub()==null)return;
for(Node n : tree.getSub())
{
System.out.println(new String(new char[num]).replace("\0", " ")+"*"+n.getName());
printTree(n,num+1);
}
}

public void callRec(Node tree)
{
System.out.println(tree.getName());
printTree(tree,1);
}

结果将是:

Parent
*Child-1
*Child-1.1
*Child-1.1.1
*Child-1.1.1.1
*Child-1.2
*Child-2
*Child-3

关于java - 如何在Java中递归地获取树结构的所有叶子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com