Java自定义树形结构

Java自定义树形结构

树形结构

Java ast语法树修改代码 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)