说明:本篇文章的所说的节点 结点 都是C语言的指针的意思。
1.使用内部类来实现单链表
public class LinkList {
Node first;//指向第一个结点
Node last;//指向最后一个结点
class Node {//使用内部类来构造链表
Node next;//外部类实例化内部类能访问私有属性,
int value;//这里没有设置为私有属性是因main函数测试的时候方便。
public Node(){};//空构造函数
public Node(int value) {//构造函数
this.value = value;
}
}
}
2.单链表的构建
/**
* 使用尾插法创建链表
* @param value
*/
public void Construct(int value) {
if(first == null) {
Node current = new Node(value);
first = current;
last = first;//只有一个节点的时候,最后一个节点也是第一个节点
}else {
Node current = new Node(value);
last.next = current;//最后一个节点指向新节点
last = current;//更新最后一个节点的位置
}
}
3.遍历单链表
public void travering(Node first) {//输入头节点
Node traver = first;
while(traver!=null) {//只要节点不为空就说明还没遍历完
System.out.print(traver.value+" ");
traver = traver.next;
}
System.out.println();
}
4.往单链表中插入数据(往后插~)
/**
* 使用尾插法插入数据
* 当然也可以把数据往前插,用first来实现.insertNode.next = first; first = insertNode;
* 不过我喜欢插后面~
* @param value
*/
public void Insert(int value) {
Node insertNode = new Node(