单链表
链表大家都很熟悉,链表是由若干个节点串起来的一个结构。类似于火车一样,拥有一个头结点(火车头)之后挂着一个个的节点,每个节点后面跟上另一个节点。每个节点分为两个域,一个数据域,用来存放这个节点的数据,一个是节点域,用来存放下一个节点。
所以对于单链表,用java实现我们首先创建节点类。
Node类:
//联结点,相当于是车厢
public class Node {
//数据域
public long data;
//节点域
public Node next;
//默认构造方法
public Node(long value) {
this.data = value;
}
//显示方法
public void display() {
System.out.print(data + " ");
}
}
再实现一些链表的基本操作。
LinkList类:
//链表,相当于火车
public class LinkList {
//车头,头结点
private Node first;
public LinkList() {
first = null;
}
//插入节点,在头结点之后插入
public void insertFirst(long value) {
Node aNode = new Node(value);
aNode.next = first;
first = aNode;
}
//删除头节点
public Node deleteFirst() {
Node tmp = first.next;
first = tmp;
return tmp;
}
//显示方法
public void display() {
Node now = first;
while(now != null) {
now.display();
now = now.next;
}
System.out.println();
}
//查找方法
public Node find(long value) {
Node now = first;
while(now.data != value) {
if(now.next == null) {
return null;
}
now = now.next;
}
return now;
}
//根据数值删除
public Node delete(long value) {
Node now = first;
Node before = first;
while(now.data != valu