所以到底什么是数据结构???
- 数据对象在计算机中的组织方式
- 数据的逻辑结构(线性表、树、图)
- 物理存储结构
- 数据对象必定与一系列加在其上的操作相关联
- 完成这些操作所用的方法就是算法
抽象数据结构类型(Abstract Data Type)
- 数据类型
- 数据对象集
- 数据集合相关联的操作集
- 抽象:描述数据类型的方法不依赖于具体实现
- 与存放数据的机器无关
- 与数据储存的物理结构无关
- 与实现操作的算法和编程语言无关
- 只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题
例4:“矩阵”的抽象数据类型定义
- 类型名称:Matrix
- 数据对象集:一个M×N的矩阵由M×N个三元组<a,i,j>构成,其中a是矩阵元素的值,i是行号,j是列号
- 操作集:
- Matrix Create(int M,int N):返回M×N的空矩阵
- ElementType GetEntry(Matrix A,int i,int j):返回矩阵A的第i行j列元素
- Matrix Add(Matrix A,Matrix B):如果行列一致,返回C=A+B;否则返回错误标志
- 抽象在哪?
- 不考虑元素a的类型
- 不考虑矩阵A的储存方式(二维数组?一维数组?十字链表?)
- 实现矩阵加法时,不考虑运算方法,使用何种语言(先按行?按列?)