多叉樹Java實現
學習筆記,放個大概,方便取用。
package com.practice.threads;
import java.util.LinkedList;
import java.util.List;
/**
*
*/
public class MultiTree {
private String nodeId;
private String parentId;
private List<MultiTree> kids = new LinkedList<>();
public MultiTree(String nodeId, String parentId){
this.nodeId = nodeId;
this.parentId = parentId;
}
// add node to tree
public static void addNodeToTree(MultiTree node, MultiTree tree){
LinkedList<MultiTree> kids = (LinkedList<MultiTree>) tree.getKids();
if(tree.getNodeId().equals(node.getParentId())){
kids.add(node);
tree.setKids(kids);
} else {
for(MultiTree kid : kids){
addNodeToTree(node, kid);
}
}
}
public List<MultiTree> getKids() {
return kids;
}
public void setKids(List<MultiTree> kids) {
this.kids = kids;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
}