实现简单链表操作

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值