Java 多叉树构建家谱
时间: 2023-07-31 22:04:44 浏览: 71
Java多叉树可以用于构建家谱,以下是一个简单的实现示例:
```java
class Person {
private String name;
private List<Person> children;
public Person(String name) {
this.name = name;
this.children = new ArrayList<>();
}
public String getName() {
return name;
}
public void addChild(Person child) {
this.children.add(child);
}
public List<Person> getChildren() {
return children;
}
}
public class FamilyTree {
private Person root;
public FamilyTree(String name) {
this.root = new Person(name);
}
public Person getRoot() {
return root;
}
public void addPerson(Person parent, Person child) {
parent.addChild(child);
}
public static void main(String[] args) {
FamilyTree familyTree = new FamilyTree("张三");
Person parent1 = familyTree.getRoot();
Person child1 = new Person("李四");
familyTree.addPerson(parent1, child1);
Person parent2 = child1;
Person child2 = new Person("王五");
familyTree.addPerson(parent2, child2);
System.out.println(familyTree.getRoot().getName());
for (Person child : familyTree.getRoot().getChildren()) {
System.out.println(" " + child.getName());
for (Person grandChild : child.getChildren()) {
System.out.println(" " + grandChild.getName());
}
}
}
}
```
在上面的示例中,`Person`类代表一个人,每个人有一个名字和多个子节点,即其子女。`FamilyTree`类代表家谱,其中`root`字段为根节点,表示家谱的起始人物。`addPerson`方法用于向家谱中添加人物。在`main`方法中,先创建家谱的起始人物张三,然后添加李四作为其子女,再添加王五作为李四的子女。最后,通过遍历树的方式输出家谱的信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)