Java自定义树形结构
Java自定义树形结构
树形结构
Java
package com.zyl.comm;
import java.util.ArrayList;
import java.util.List;
public class Node {
private List> children = new ArrayList<>();
private Node parent;
private T data;
public Node(T data) {
this.data = data;
}
public Node(Node parent, T data) {
this.parent = parent;
this.data = data;
}
public List> getChildren() {
return children;
}
public void setParent(Node parent) {
parent.addChild(this);
this.parent = parent;
}
public void addChild(T data) {
Node child = new Node(data);
child.setParent(this);
this.children.add(child);
}
public void addChild(Node child) {
child.setParent(this);
this.children.add(child);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public boolean isRoot() {
return (this.parent == null);
}
public boolean isLeaf() {
return this.children.size() == 0;
}
public void removeParent() {
this.parent = null;
}
public int getDepth(){
if (parent == null){
return 0;
} else {
return parent.getDepth() + 1;
}
}
}
参考
Tree implementation in Java (root, parents and children)