链表的基本操作特点:
- 客户端不用去关注具体的Node以及引用关系的细节,只关注于提供的Link中支持的方法(数据的保存和输出);
- Link类的主要功能是控制Node类对象的产生和根节点;
- Node类主要负责数据的保存以及引用关系的分配。
eg.
//定义链表,负责数据的设置和输出
public class Link {//链表类,外部能够看见的只有这一个类
//之所以定义在内部,主要是让其为Link类服务,且只为Link类服务
private class Node{//定义节点类
private String data;//保存数据
private Node next;//应用关系
public Node(String data) {
this.data=data;
}
public void addNode(Node newNode) {
if(this.next==null)
this.next=newNode;
else
this.next.addNode(newNode);
}
public void printNode() {
System.out.println(this.data);
if(this.next!=null)
this.next.printNode();
}
}
//=======================以上为内部类=====================
private Node root;//根节点
public void add(String data) {//假设不允许有空值
if(data == null) {
return;
}
Node newNode=new Node(data);
if(this.root==null) {
this.root=newNode;
}else {
this.root.addNode(newNode);
}
}
public void print() {
root.printNode();
}
}
public class LinkDemo {
public static void main(String[] args) {
Link link = new Link();
link.add("火车头");
link.add("A");
link.add("B");
link.add(null);
link.add("C");
link.print();
}
}