【Java】-- 链表的使用及模拟实现
一、什么是链表
1.1 链表的定义
链表是一种常见的数据结构,由一系列节点组成。每个节点包含两部分:数据和指向下一个节点的指针。通过这种方式,每个节点都能够在内存中按顺序连接起来,形成一个链式结构。
1.2 链表的不同类型
链表有多种类型,包括单向链表、双向链表和循环链表等。在单向链表中,每个节点只有一个指针指向下一个节点;在双向链表中,每个节点有两个指针,一个指向前一个节点,一个指向后一个节点;而在循环链表中,最后一个节点的指针指向第一个节点,形成一个环。
在 Java 中 LinkedList 的底层是双向链表结构
1.3 链表的优缺点
链表的优点是插入和删除操作效率高,因为不需要像数组那样移动大量元素。然而,链表的缺点是访问元素的效率较低,因为需要从头开始逐个遍历节点直到找到目标节点。
二、链表的使用
在 Java 中,链表 LinkedList 和 顺序表 ArrayList 都是实现 List 接口,所以 ArrayList 的各种操作对 LinkedList 同样有效
三、链表的模拟实现
实现一个单向不循环链表的部分功能
定义一个节点的结构
class Node{
//保存当前节点的值
public String value;
//保存下一个节点的地址
public Node next;
public Node(String value){
this.value = value;
this.next = null;
}
}
3.1 增加元素
头插