单链表:对每个数据元素,存在一个存储数据元素信息的域(数据域),一个存储直接后继位置的域(指针域)的存储映像称为结点(Node)。n个结点链接成一个链表,因为此链表的每个结点中只包含一个指针域,所以叫做单链表。
//手动实现一个单链表
public class Node {
// 定义一个数据域
int data;
// 定义一个指针域
Node next;
// 构造方法
public Node(int data) {
this.data = data;
}
// 获取结点中的数据
public int getData() {
return this.data;
}
// 追加结点
public Node append(Node node) {
Node currentNode = this;
while (true) {
Node nextNode = currentNode.next;
//到尾结点时退出
if (nextNode == null)
break;
currentNode = nextNode;
}
currentNode.next = node;
return this;
}
// 判断结点是否为尾结点
public boolean isLast() {
return this.next == null;
}
// 获取下一个结点
public Node next() {
return this.next;
}
}
//测试单链表的方法
public class testNde {
public static void main(String[] args) {
// 新建结点
Node n1 = new Node(1);
Node n2 = new Node(2);
Node n3 = new Node(3);
//追加结点
n1.append(n2).append(n3).append(new Node(4));
//输出结点值
System.out.println(n1.next().next().next().getData());
//判断是否到尾结点
System.out.println(n1.next().next().next().isLast());
}
}