class NodeManager
{
private Node rootNode;
//所有节点名连接后的字符串
private String nodeNames;
public NodeManager(String rootName){
rootNode = new Node();
rootNode.setName(rootName);
}
public Node getRootNode(){
return rootNode;
}
//添加节点
public void addNode(Node rootNode,String name){
if(rootNode.getNode()!=null){
//递归调用
addNode(rootNode.getNode(),name);
}else{
//创建一个新节点
Node newNode = new Node();
newNode.setName(name);
//把新节点添加到所有节点的最后
rootNode.setNode(newNode);
}
}
//删除一个节点
public void delNode(Node resNode,String name){
if(resNode.getNode()!=null){
if(resNode.getNode().getName().equals(name)){
resNode.setNode(resNode.getNode().getNode());
}else{
delNode(resNode.getNode(),name);
}
}
}
//按顺序显示所有节点的姓名
public void viewNode(Node rootNode){
if(rootNode.getNode()!=null){
nodeNames = nodeNames + "->" + rootNode.getNode().getName();
viewNode(rootNode.getNode());
}
}
public String display(Node node){
nodeNames = rootNode.getName();
viewNode(node);
return nodeNames;
}
class Node
{
private String name;
private Node node;
//private List<Node> nodeList = new ArrayList<Node>();
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setNode(Node node){
this.node = node;
}
public Node getNode(){
return this.node;
}
}
public static void main(String[] args)
{
//创建根节点
NodeManager nm = new NodeManager("根节点");
//添加子节点
nm.addNode(nm.getRootNode(),"节点1");
nm.addNode(nm.getRootNode(),"节点2");
nm.addNode(nm.getRootNode(),"节点3");
nm.addNode(nm.getRootNode(),"节点4");
//显示所有节点名
System.out.println(nm.display(nm.getRootNode()));
nm.delNode(nm.getRootNode(),"节点3");
System.out.println(nm.display(nm.getRootNode()));
}
}