4.2 Java实现双向链表(完整代码及详细注释)
文章目录
1.什么是双向链表?
双向链表由多个节点组成,每个 节点(用于存储数据) 通过prev,next指针和前,后节点相互连接,
下一个节点的引用存放在上一个节点的next指针中, 上一个节点的引用存放在下一个节点的prev指针中,
从而构成了一个线性的链表 (它与数组的区别就是它可以不具空间连续性)
在java中一般通过定义节点Node类和API类的方式来实现链表
JDK中对链表LinkedList的节点的实现结构如下:
可以看到链表节点组成分为三部分:
存储数据的元素item , 当前节点下一节点的引用next, 当前节点上一节点的引用prev
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
可以知道JDK的链表实现就是双向链表.
节点定义一般就放在API内部作为内部静态类使用,我们使用链表数据结构都是通过LinkedList API对外开放的接口进行调用的,
我们不允许直接对链表内部属性直接访问。
1.1 双向链表基本结构
下面我们学习最基本的链表结构,我们默认链表中的元素就是int类型数字。
如图所示:

浙公网安备 33010602011771号