单链表的基本操作
链表是一种物理存储结构上非连续,但是逻辑顺序连续的存储结构。链表结构丰富,主要包含8种链表结构,分别为:带头结点的单链表、不带头结点的单链表、带头结点的双链表、不带头结点的双链表、带头结点的循环链表、不带头结点的循环链表、带头结点的非循环链表以及不带头结点的非循环链表。本文主要针对Java数据结构中常用到的带头结点的单链表的基本操作进行实践。
1 构建单链表信息
通过泛型构建单链表类:
public class SingleLinklist<E> {
public static class Node<E> {
E value; //结点的值
Node<E> next; //结点的下一个指向
public Node(E value) {
this.value = value;
}
}
Node<E> head; //定义头结点
}
2 打印链表的每个元素
通过链表的遍历来打印每个元素的值
public String toString(){
Node<E> cur = head;
String str = "[";
while(null != cur){
str += cur.value;
if(null != cur.next){
str += ",";
}
cur = cur.next;
}
str += "]";
return str;
}
3 计算链表中元素的个数
public int size(){
Node<E> cur = head;
int count = 0;
while(null != cur){
count++;
cur = cur.next;
}
return count;
}
4 找到链表的最后一个结点
链表最后一个结点的特点:该结点的next为nu