以下是一个简单的树状数据结构示例,用于从上往下溯源数据。我们将创建一个名为“Node”的类,每个节点都有一个唯一的ID和一个可选的父节点ID,以及一个包含子节点的列表。我们还将添加一个名为“findPath”的方法,该方法接受一个ID参数并返回从根节点到该节点的ID列表。

public class Node {
    private String id;
    private String parentId;
    private List<Node> children;

    public Node(String id, String parentId) {
        this.id = id;
        this.parentId = parentId;
        this.children = new ArrayList<>();
    }

    public String getId() {
        return id;
    }

    public String getParentId() {
        return parentId;
    }

    public List<Node> getChildren() {
        return children;
    }

    public void addChild(Node child) {
        children.add(child);
    }

    public List<String> findPath(String id) {
        List<String> path = new ArrayList<>();
        if (this.id.equals(id)) {
            path.add(this.id);
            return path;
        }
        for (Node child : children) {
            List<String> childPath = child.findPath(id);
            if (!childPath.isEmpty()) {
                path.add(this.id);
                path.addAll(childPath);
                return path;
            }
        }
        return path;
    }
}

在此示例中,我们使用递归实现了“findPath”方法。如果当前节点的ID与目标ID相同,则返回包含当前节点ID的列表。否则,我们遍历所有子节点,调用它们的“findPath”方法。如果子节点返回了非空路径,我们将当前节点ID添加到路径开头,并将子节点路径添加到路径末尾,然后返回完整路径。如果没有找到匹配项,则返回空列表。

java-树状数据从上往下溯源数据举例示例代码

原文地址: http://www.cveoy.top/t/topic/fUi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录