3.1多维数组 多维数组的定义 二维以上的数组 数组( array)在高级语言中 是作为一种数据类型介绍的,而在 本节中数组是作为一种常用数据结 构来介绍的
计 算 机 软 件 基 础 3.1 多维数组 一.多维数组的定义 二维以上的数组 。 注意:数组(array)在高级语言中 是作为一种数据类型介绍的,而在 本节中数组是作为一种常用数据结 构来介绍的 。
数组的逻辑结构(以二维数组为例) 分析:二维数组中的每一个元素既受到 行关系的制约,又受到列关系的制约。 若只考虑其中的一个关系,则对于任意 元素,直接前驱和直接后继都是唯一的, 即行、列关系都是线性的。 多维数组可看成是线性表的推广, 其逻辑关系是非线性的,实质上是多个 线性关系的组合
计 算 机 软 件 基 础 二. 数组的逻辑结构(以二维数组为例) 分析:二维数组中的每一个元素既受到 行关系的制约,又受到列关系的制约。 若只考虑其中的一个关系,则对于任意 元素,直接前驱和直接后继都是唯一的, 即行、列关系都是线性的。 结论:多维数组可看成是线性表的推广, 其逻辑关系是非线性的,实质上是多个 线性关系的组合。
多维数组的存储结构 采用顺序存储结构实现。 原因:多维数组一经定义,其元素 个数就固定不变。 顺序存储的次序: 行优先: PASCAL、C语言 列优先: FORTRAN语言
计 算 机 软 件 基 础 三.多维数组的存储结构 采用顺序存储结构实现 。 原因:多维数组一经定义,其元素 个数就固定不变。 ❖顺序存储的次序: 行优先:PASCAL、C语言 列优先:FORTRAN语言
四.矩阵的存储方法 1普通矩阵的存储方法: 采用相应的二维数组实现。 2.特殊矩阵的存储方法: 思考:两类 特殊矩阵的 今研究对象(两类特殊矩阵)}共同特点是 三角矩阵和稀疏矩阵什么? 采用压缩存储的方法实现
计 算 机 软 件 基 础 四.矩阵的存储方法 1.普通矩阵的存储方法: 采用相应的二维数组实现 。 2.特殊矩阵的存储方法: ❖ 研究对象(两类特殊矩阵) 三角矩阵和稀疏矩阵 采用压缩存储的方法实现 。 思考:两类 特殊矩阵的 共同特点是 什么?
(1)三角矩阵的压缩存储 分析:三角矩阵中非0元素的分布有规 律。 结论:可按照一定的顺序依次将三角矩 阵中所有非0元素存储在连续的存储空 间中。 非0元素在存储空间中的存放 位置k与其在原矩阵中的行、列位置间 存在着一一对应的关系
计 算 机 软 件 基 础 (1)三角矩阵的压缩存储 分析:三角矩阵中非0元素的分布有规 律。 结论:可按照一定的顺序依次将三角矩 阵中所有非0元素存储在连续的存储空 间中。 可行性:非0元素在存储空间中的存放 位置k与其在原矩阵中的行、列位置间 存在着一一对应的关系。
例如:对下三角矩阵A按行优先顺序对其 进行压缩存储 a11 a21a22 A a31a32 a33 an1 an2 an3 a l1a21a22313233|. m1 pn2 An3 nn 2345 mm+I m+2 m
计 算 机 软 件 基 础 例如:对下三角矩阵A按行优先顺序对其 进行压缩存储。 A = n 1 n 2 n 3 n n 3 1 3 2 3 3 2 1 2 2 1 1 a a a ... a ... ... ... ... a a a a a a a11 a21 a22 a31 a32 a33 …. …. aij …. …. an1 an2 an3 …. …. ann 0 1 2 3 4 5 …. …. k …. …. m m+1 m+2 …. …. m+n