Java的单向链表和内部类的结合使用
2012-11-01 17:23
357 查看
class Link { // 节点 class Node { public String name; public Node next; public Node(String name) { this.name = name; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } // 向下一个节点添加节点 public void addNode(Node node) { if (this.next == null) { next = node; } else { next.addNode(node); } } // 打印所有节点 public void printNode() { System.out.print(this.name + "---->"); if (this.next != null) { this.next.printNode(); } } // 查询某个节点 public boolean searchNode(String name) { if (this.name.equals(name)) { return true; } else { return this.next.searchNode(name); } } // 删除某个节点 public void deleteNode(Node parentNode, String name) { if (this.name.equals(name)) { parentNode.next = this.next; } else { this.next.deleteNode(this, name); } } } // 根节点 private Node root; // 添加节点 public void add(String name) { Node newNode = new Node(name); if (root == null) { root = newNode; } else { root.addNode(newNode); } } // 打印节点 public void print() { if (this.root != null) { this.root.printNode(); } } // 查询节点 public boolean search(String name) { if (name != null) { return this.root.searchNode(name); } else { return false; } } // 删除节点 public void delete(String name) { if (this.search(name)) { if (this.root.name.equals(name)) { if (this.root.next != null) { this.root = this.root.next; } else { this.root = null; } } else { this.root.deleteNode(root, name); } } } } public class NodeTest { public static void main(String[] args) { Link link = new Link(); link.add("根节点"); link.add("第一节点"); link.add("第二节点"); link.add("第三节点"); link.add("第四节点"); link.add("第五节点"); link.print(); System.out.println(); System.out.println(link.search("第一节点")); System.out.println(); link.delete("第三节点"); link.print(); } }
相关文章推荐
- [Java]单向链表 ,循环链表的简单使用方法
- java 内部类 匿名内部类 匿名类结合泛型 使用 详细教程 讲解
- 链表的Java实现(使用内部类作为指针的引用)
- Java中队列的实现(2)-使用单向链表以及实现
- 面试题三:使用 java 实现单向链表的倒置
- Java中栈的实现(2)-使用单向链表以及实现
- 使用java实现的超简单的单向链表 头插法
- 链表与简单Java类的结合使用
- Java实现单向链表的基本功能详解
- Cucumber java + Webdriver (7) 结合Page Object,使用LoadableComponent
- UE4单向链表的使用
- Java 内部类种类及使用解析
- C++ 使用单向链表实现Stack
- 使用递归和非递归方式反转单向链表
- Java 内部类种类及使用解析
- 单向链表LinkedList的使用
- 数据结构Java实现【3】----单向链表的插入和删除
- 关于static 访问权限、继承、多态、内部类结合在一起时的使用方法
- Java中使用匿名内部类创建多线程的3种方式
- Java 基础巩固:内部类的字节码学习和实战使用场景