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类型数字。

如图所示:

Syntax error in textmermaid version 11.4.1

作者:small-water

出处:https://www.cnblogs.com/small-water/p/17870051.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   文牧之  阅读(35)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示