java构建树形结构代码
时间: 2024-04-14 11:07:35 浏览: 87
以下是一个示例代码,用于构建树形结构。这里使用了节点类来表示树中的每个节点,其中包含了节点的值、父节点和子节点。
```
public class Node {
private int value;
private Node parent;
private List<Node> children;
// 构造函数
public Node(int value) {
this.value = value;
this.children = new ArrayList<>();
}
// 添加子节点
public void addChild(Node child) {
child.setParent(this);
this.children.add(child);
}
// 获取子节点列表
public List<Node> getChildren() {
return children;
}
// 获取父节点
public Node getParent() {
return parent;
}
// 设置父节点
public void setParent(Node parent) {
this.parent = parent;
}
// 获取节点值
public int getValue() {
return value;
}
// 设置节点值
public void setValue(int value) {
this.value = value;
}
}
```
然后,在构建树时,我们可以使用递归函数来遍历每个节点,并为其添加子节点。以下是一个示例代码:
```
public Node buildTree(int[] values, int parentValue) {
Node parentNode = new Node(parentValue);
for (int i = 0; i < values.length; i++) {
int value = values[i];
if (value == parentValue) {
Node childNode = buildTree(values, i);
parentNode.addChild(childNode);
}
}
return parentNode;
}
```
在这个示例中,我们传入一个整数数组和一个父节点值,然后遍历整个数组,为每个与父节点值相同的元素创建一个子节点,并递归地为该子节点添加它的子节点。最终,我们返回根节点,即父节点值为-1的节点。
阅读全文