数据结构:数组的区别在于,链表通过指针将一组零散的内存块串联起来使用

  • 单链表
    • 结点:即内存块
    • 后继指针:记录下个节点地址的指针
    • 头结点:第一个节点,用来记录链表的基地址
    • 尾节点:指针不指向下一个节点,而是指向 空地址 NULL
    • 时间复杂度:
      • 插入删除:不用像数据结构:数组那样为保证内存连续性进行数据搬移,复杂度为 O(1)
      • 查找:内存非连续,自然找不到下标计算内存地址,只能顺序查询,复杂度为 O(n)
  • 循环链表
    • 特点:一种特殊的单链表,尾节点指针指向第一个节点
    • 优点:从链尾到链头比较方便
    • 使用场景:数据具有环形结构特点的场景,如约瑟夫问题
  • 双向链表
    • 特点:相比单列表只有一个指向后续节点的 next 指针,还有一个指向上一个节点的 prev 指针
    • 优点:更多的存储空间,带来更高的操作灵活性