java递归查询组织上级
时间: 2023-10-11 16:14:22 浏览: 100
递归查找java
5星 · 资源好评率100%
可以使用递归来查询组织的上级。假设有一个包含组织结构的数据结构,每个节点包含一个名字和一个列表,列表存储了该节点的直接下属。
下面是一个示例的 Java 代码,用于递归查询组织的上级:
```java
import java.util.List;
class Node {
String name;
List<Node> subordinates;
// 构造函数省略
public Node findSuperior(String targetName) {
// 如果当前节点是目标节点,直接返回
if (this.name.equals(targetName)) {
return this;
}
// 遍历当前节点的下属
for (Node subordinate : subordinates) {
// 递归查询下属的上级
Node superior = subordinate.findSuperior(targetName);
if (superior != null) {
// 如果找到上级,返回
return superior;
}
}
// 当前节点及其下属中没有找到目标节点的上级
return null;
}
}
public class Main {
public static void main(String[] args) {
// 创建组织结构
Node root = new Node("CEO");
Node manager1 = new Node("Manager 1");
Node manager2 = new Node("Manager 2");
Node employee1 = new Node("Employee 1");
Node employee2 = new Node("Employee 2");
root.subordinates.add(manager1);
root.subordinates.add(manager2);
manager1.subordinates.add(employee1);
manager2.subordinates.add(employee2);
// 查询组织结构中某个节点的上级
Node superior = root.findSuperior("Employee 2");
if (superior != null) {
System.out.println("上级是:" + superior.name);
} else {
System.out.println("没有找到上级");
}
}
}
```
阅读全文