数据结构定义
- 数据的逻辑结构
- 数据的存储结构(物理结构)
- 数据的运算
逻辑结构
- 表示
- 图表表示
- 二原组表示 B = (D, R)
- 类型
- 集合
- 线性结构
- 树形结构
- 图形结构
1 | # 树形结构 |
存储结构
- 顺序存储 (dict)
- 链式存储 (*next)
- 索引存储 (key, address,查找效率高,需建立索引表)
- 哈希(散列)存储(哈希函数计算出存储地址,只对数据进行存储,不对逻辑关系存储)
数据运算
常用的运算有检索、插入、删除、更新和排序等。
| 运算定义 | 运算实现 | |
|---|---|---|
| 逻辑结构 | 映射=> | 存储结构 |
数据类型和抽象类型
- 数据类型
- C/C++ 常用的数据类型
- 基本数据类型(
int,short int,long int,unsigned int,bool,float,double,char) - 指针类型(
int i,*p;i 是整型变量,p 是指针变量。&i表示变量 i 的地址,将 p 指向 i 的运算为p=&i。*p是取 p 所指变量的值。) - 数组类型 (
int a[10]) - 结构体类型
- 共用体类型(共享存储单元)
- 基本数据类型(
- 存储空间分配
- 静态分配方式(
int a[10];) - 动态分配方式(用
malloc()函数为指针变量分配连续的空间,不需要时用free(p)释放p所指向的空间。)
- 静态分配方式(
- C/C++ 常用的数据类型
1 | # 结构体类型 |
1 | # 动态存储空间分配 |
- 抽象类型(Abstract Data Type)
抽象类型有两个重要特征,数据抽象和数据封装。抽象类型由数据逻辑结构和运算定义两部分组成。
| ADT | ADT的实现 | |
|---|---|---|
| 运算定义 | 运算实现 | |
| 逻辑结构 | 映射=> | 存储结构 |
示例
1 | ADT 抽象数据类型名(例:Complex) |