java-树状数据从上往下溯源数据举例示例代码
以下是一个简单的树状数据结构示例,用于从上往下溯源数据。我们将创建一个名为“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添加到路径开头,并将子节点路径添加到路径末尾,然后返回完整路径。如果没有找到匹配项,则返回空列表。
原文地址: http://www.cveoy.top/t/topic/fUi 著作权归作者所有。请勿转载和采集!