単純なチェーンテーブル操作を実現


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()));   
  
 }   
}