Files
Linux-C-Notes/Chapter11/数据结构.md
2024-04-15 18:17:23 +08:00

1019 B
Raw Blame History

数据结构

架构梳理

  • 线性1:1)

    • 线性表

      • 顺序存储 --> arr

      • 链式存储 --> 指针 (有头,无头)

        有头是指有一个不存数据的头,始终作为这个链表的起点。

        会更加简单,无头的话,更改首部节点会麻烦。

        头节点不仅可以作为起点,还可以作为存储信息的仓库,因为头节点只有*next是必须的。

        • 单链表

          • 循环
          • 不循环
        • 双向链表

          lib四个版本,第一个最基础完善,第二个改成了变长结构体,第三个在第二个的基础上封装了函数指针,第四个在第二个的基础上隐藏了数据结构,只暴露接口。

          • 循环
          • 不循环

          学到这里可以去读一下内核有关list的实现,主要都是宏和内联函数。

    • 队列

  • 树状1:N

    递归递归非递归

  • N:M