1.数据结构研究的两个东西:逻辑结构和存储结构
2.逻辑结构:
- 线性:1:1,表。例如每个学生都有唯一的学号。顺序表,链式表。
- 非线性:层级关系(1:n),树。例如电脑硬盘和文件。顺序树,链式树。
- 图集关系:(m:n),图。邻接矩阵表示法,邻接表。
3.逻辑和物理:
- 新华字典:目录,字
4.为了便于理解,存储器为线性编址(实际上并不是)
5.存储方式
- 顺序存储:顺序表 找第几个很方便 查找
- 链式存储:链表 插入删除
6.算法:基于存储结构,查找插入删除
二、线性结构
1.编程语言要学的两个作用:语法 ,发布的标准库(核心,os接口,定义结构(数组和字符串操作),c99标准 )
2.顺序表
- 可变容量的约束:空间首地址指向动态区,空间的容量,空间的有效索引。
- 动态区:动态区,程序执行是才能申请。malloc
- 静态区,程序编译时就确定。int
3.数据结构:
- 结构头Header:空间首地址,空间的容量,空间的有效索引。
- 初始化,卸载数据结构的数据空间
4.实现一个数据结构
- 研究它的逻辑结构
5.实现顺序表:
- 定义结构:封装一个独立的.c和.h,定义表头。
- 实现接口:表头的初始化,释放接口。