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

44 lines
1019 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据结构
## 架构梳理
- 线性1:1)
- 线性表
- 顺序存储 --> arr
- 链式存储 --> 指针 (有头,无头)
有头是指有一个不存数据的头,始终作为这个链表的起点。
会更加简单,无头的话,更改首部节点会麻烦。
头节点不仅可以作为起点,还可以作为存储信息的仓库,因为头节点只有*next是必须的。
- 单链表
- 循环
- 不循环
- 双向链表
`lib`四个版本,第一个最基础完善,第二个改成了变长结构体,第三个在第二个的基础上封装了函数指针,第四个在第二个的基础上隐藏了数据结构,只暴露接口。
- 循环
- 不循环
学到这里可以去读一下内核有关**list**的实现,主要都是宏和内联函数。
-
- 队列
- 树状1:N
**递归**。**递归**转**非递归**。
-N:M