《数据结构》 第五章数组
《 数据结构》 第五章 数组
数据结构 第五章 数组 5.1数组的定义 5.2 :数组的顺序表示和实现 5.3 矩阵的压缩存储 5.3.1特殊矩阵 5.3.2稀疏矩阵
数据结构 第五章 数组 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.3.2 稀疏矩阵
数据结构 数组可看成是一种特殊的线性表,其特殊在于,表 中的元素本身也是一种线性表。 5.1数组的定义 多维数组是向量(一维数组)的推广。 例如,二维数组: aoo a01. a0,n-1 Amn a10 a11 a1,n-1 am-1,0am-1,1.am-1,n-1 数组的抽象类型定义参见P90
数据结构 数组可看成是一种特殊的线性表,其特殊在于,表 中的元素本身也是一种线性表。 5.1 数组的定义 多维数组是向量(一维数组)的推广。 例如,二维数组: a00 a01 . a0,n-1 a10 a11 . a1,n-1 . . . . am-1,0 am-1,1 . am-1,n-1 Amn = 数组的抽象类型定义参见P90
数据结构 在C语言中,一个二维数组类型可以定义为其分量类 型为一维数组类型的一维数组类型,也就是说, typedef ElemType Array2[m][n]; 等价于: typedef ElemType Array1[n]; typedef Array1 Array2[m]; 数组一旦被定义,它的维数和维界就不再改变。 因此,除了结构的初始化和销毁之外,数组的基本 操作只有存取元素和修改元素值的操作
数据结构 在C语言中,一个二维数组类型可以定义为其分量类 型为一维数组类型的一维数组类型,也就是说, typedef ElemType Array2[m][n]; 等价于: typedef ElemType Array1[n]; typedef Array1 Array2[m]; 数组一旦被定义,它的维数和维界就不再改变。 因此,除了结构的初始化和销毁之外,数组的基本 操作只有存取元素和修改元素值的操作
数据结构 5.2数组的顺序表示和实观 由于计算机的内存结构是一维的,因此用一维内 存来表示多维数组,就必须按某种次序将数组元 素排成一个序列,然后将这个线性序列存放在存 储器中。 又由于对数组一般不做插入和删除操作,也就是 说,数组一旦建立,结构中的元素个数和元素间 的关系就不再发生变化。因此,一般都是采用顺 序存储的方法来表示数组。 通常有两种顺序存储方式: 低下标优先 高下标优先
数据结构 5.2 数组的顺序表示和实现 由于计算机的内存结构是一维的,因此用一维内 存来表示多维数组,就必须按某种次序将数组元 素排成一个序列,然后将这个线性序列存放在存 储器中。 又由于对数组一般不做插入和删除操作,也就是 说,数组一旦建立,结构中的元素个数和元素间 的关系就不再发生变化。因此,一般都是采用顺 序存储的方法来表示数组。 通常有两种顺序存储方式: 低下标优先 高下标优先