単純なチェーンテーブル操作を実現
2635 ワード
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()));
}
}