算法系列-数据结构(二):链表

213 阅读2分钟

基本概念

链表实际上是线性表的链式存储结构,与数组不同的是,它是用一组任意的存储单元来存储线性表中的数据,存储单元不一定是连续的,且链表的长度不是固定的,链表数据的这一特点使其可以非常的方便地实现节点的插入和删除操作,链表的每个元素称为一个节点,每个节点都可以存储在内存中的不同的位置,为了表示每个元素与后继元素的逻辑关系,以便构成“一个节点链着一个节点”的链式存储结构。

链表分类

  • 单向链表
    • 结构表示
    public class Node {
        
        /**
         * 数据
         */
        private Object data;
        
        /**
         * 下一个节点的指针
         */
        private Node next;
    }
    
  • 双向链表
    • 结构表示
    public class Node {
        
        /**
         * 数据
         */
        private Object data;
        
        /**
         * 前一个节点的指针
         */
        private Node prev;
        
        /**
         * 下一个节点的指针
         */
        private Node next;
    }
    
  • 环形链表

链表的经典算法题(每日一题详见github

链表实践

  • AQS的使用
  • HashMap中的使用