//链表的基本形式------>
class Node{
private String data;
private Node next;
public Node(){}
public Node(String data){
this.data = data;
}
public void setData(String data){
this.data = data;
}
public String getData(){
return this.data;
}
public void setNext(Node next){
this.next = next;
}
public Node getNext(){
return this.next;
}
//实现节点的添加
//第一次调用 this = Link.head
//第二次调用 this = Link.head.next
//第三次调用 this = Link.head.next.next
public void addNode(Node newNode){
if(this.next == null){ // 当前节点的下一个为空
this.next = newNode;
}
else{ //当前节点不为空继续下一个节点
this.next.addNode(newNode);
}
}
//添加一个输出方法
//第一次调用 this = Link.head
//第二次调用 this = Link.head.next
//第三次调用 this = Link.head.next.next
public void printNode(){
System.out.println(this.data);
if(this.next != null){
this.next.printNode();
}
}
}
class Link{ //负责对数据的存放和输出
private Node head; //根节点
public void add(String data){ //存放数据
Node newNode = new Node(data);
if(head == null){ //根节点为空 则 把第一个保存的设置为根节点
this.head = newNode;
}
else{ //根节点已经存在
//后面的数据添加需要根据节点判断
this.head.addNode(newNode);
}
}
public void print(){ //输出数据
if(this.head != null){
this.head.printNode();
}
}
}
public class Demo1 {
public static void main(String[] args) {
Link link = new Link();
link.add("111");
link.add("222");
link.add("333");
link.add("444");
link.print();
}
}
下文代码进一步优化!