1019 B
1019 B
数据结构
架构梳理
-
线性(1:1)
-
线性表
-
顺序存储 --> arr
-
链式存储 --> 指针 (有头,无头)
有头是指有一个不存数据的头,始终作为这个链表的起点。
会更加简单,无头的话,更改首部节点会麻烦。
头节点不仅可以作为起点,还可以作为存储信息的仓库,因为头节点只有*next是必须的。
-
单链表
- 循环
- 不循环
-
双向链表
lib四个版本,第一个最基础完善,第二个改成了变长结构体,第三个在第二个的基础上封装了函数指针,第四个在第二个的基础上隐藏了数据结构,只暴露接口。- 循环
- 不循环
学到这里可以去读一下内核有关list的实现,主要都是宏和内联函数。
-
-
-
栈
-
队列
-
-
树状(1:N)
递归。递归转非递归。
-
图(N:M)