java实现树形结构的集合代码怎么写
时间: 2023-07-13 08:38:13 浏览: 108
在Java中实现树形结构的集合可以使用`List`和`Map`等基本数据结构来组织节点之间的关系。下面是一个Java实现的树形结构代码示例:
```java
public class TreeNode {
private String name;
private List<TreeNode> children;
public TreeNode(String name) {
this.name = name;
this.children = new ArrayList<>();
}
public String getName() {
return name;
}
public void addChild(TreeNode node) {
children.add(node);
}
public void removeChild(TreeNode node) {
children.remove(node);
}
public List<TreeNode> getChildren() {
return children;
}
public boolean isLeaf() {
return children.isEmpty();
}
}
```
上述代码定义了一个`TreeNode`类,每个节点包含一个`name`属性和一个`children`列表,用于存储其子节点。`addChild`和`removeChild`方法用于添加和删除子节点,`getChildren`方法用于获取子节点列表,`isLeaf`方法用于判断当前节点是否为叶子节点。
下面是一个使用`TreeNode`类创建树形结构的例子:
```java
// 创建根节点
TreeNode root = new TreeNode("A");
// 创建子节点并添加到根节点
TreeNode nodeB = new TreeNode("B");
TreeNode nodeC = new TreeNode("C");
root.addChild(nodeB);
root.addChild(nodeC);
// 创建子节点并添加到nodeB
TreeNode nodeD = new TreeNode("D");
TreeNode nodeE = new TreeNode("E");
nodeB.addChild(nodeD);
nodeB.addChild(nodeE);
// 创建子节点并添加到nodeC
TreeNode nodeF = new TreeNode("F");
nodeC.addChild(nodeF);
```
上述代码创建了一个深度为2的树形结构,其中根节点为A,它的子节点为B和C,B的子节点为D和E,C的子节点为F。可以通过遍历树形结构来访问每个节点及其子节点:
```java
// 遍历树形结构
public void traverse(TreeNode node) {
System.out.println(node.getName());
for (TreeNode child : node.getChildren()) {
traverse(child);
}
}
traverse(root);
```
输出结果为:
```
A
B
D
E
C
F
```
上述代码实现了一个简单的树形结构,可以根据实际需求进行扩展和优化。
阅读全文