演讲稿第5章 数组和广义表.pptVIP

  • 1
  • 0
  • 约8.7千字
  • 约 60页
  • 2020-07-23 发布于湖北
  • 举报
* 一、对称矩阵的压缩存储 设有一个 n?n 的对称矩阵 A。 在矩阵中,aij = aji 优选 * 为节约存储空间,只存对角线及对角线以上的元素,或者只存对角线及对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。 把它们按行存放于一个一维数组 B 中,称之为对称矩阵 A 的压缩存储。 数组 B 共有 n + ( n - 1 ) + ??? + 1 = n*(n+1)/2 个元素。 优选 * 上三角矩阵 下三角矩阵 优选 * 下三角矩阵 B a00 a10 a11 a20 a21 a22 a30 a31 a32 …… an-1n-1 0 1 2 3 4 5 6 7 8 n(n+1)/2-1 若 i ? j, 数组元素A[i][j]在数组B中的存放位置为 1 + 2 + ??? + i + j = (i + 1)* i / 2 + j 前i行元素总数 第i行第j个元素前元素个数 优选 * 若 i j,数组元素 A[i][j] 在矩阵的上三角部分, 在数组 B 中没有存放,可以找它的对称元素A[j][i]的存放位置: j *(j +1) / 2 + i 注:书上P95公式(5-3)i和j的范围 优选 * 例3. ?设有一个10阶的对称矩阵A,采用下三角压缩存储方式,以行序为主序存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85(即该元素下标ij=85)的地址为( )。 A. 13 B. 33 C. 18 D. 40 优选 * 例4. ?若对n阶对称矩阵A[1..n,1..n]以行序为主序方式下将其下三角的元素(包括主对角线上的所有元素)依次存放于一维数组B[1..n(n+1)/2]中,则在B中确定aij (ij)的位置k的关系为( )。 A.i*(i-1)/2+j B.j*(j-1)/2+i C.i*(i+1)/2+j D.j*(j+1)/2+i 优选 * 上三角矩阵 B a00 a01 a02 a03 a11 a12 a13 a22 a23 a33 0 1 2 3 4 5 6 7 8 9 若i ? j,数组元素A[i][j]在数组B中的存放位置为 n + (n-1) + (n-2) + ??? + (n-i+1) + j-i 前i行元素总数 第i行第j个元素前元素个数 n = 4 优选 * 若 i ? j,数组元素A[i][j]在数组B中的存放位置为 n + (n-1) + (n-2) + ??? + (n-i+1) + j-i = = (2*n-i+1) * i / 2 + j-i = = (2*n-i-1) * i / 2 + j 若i j,数组元素A[i][j]在矩阵的下三角部分,在数组 B 中没有存放。因此,找它的对称元素A[j][i]。 A[j][i]在数组 B 的第 (2*n-j-1) * j / 2 + i 的位置中找到。 优选 * 二、三对角矩阵的压缩存储 B a00 a01 a10 a11 a12 a21 a22 a23 … an-1n-2 an-1n-1 0 1 2 3 4 5 6 7 8 9 10 优选 * 第5章 数组和广义表 ① 元素的值并非原子类型,可以再分解,表中元素也是一个线性表(即广义的线性表)。 ② 所有数据元素仍属同一数据类型。 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的存储结构 数组和广义表的特点:一种特殊的线性表 优选 * 5.1 数组的定义 数组: 由一组名字相同、下标不同的变量构成 注意: 本章所讨论的数组与高级语言中的数组有所区别:高级语言中的数组是顺序结构;而本章的数组既可以是顺序的,也可以是链式结构,用户可根据需要选择。 答:对的。因为: ① 数组中各元素具有统一的类型; ② 数组元素的下标一般具有固定的上界和下界,即数组一旦被定义,它的维数和维界就不再改变。 ③

文档评论(0)

1亿VIP精品文档

相关文档