软考-软件设计师:数据结构-线性结构-矩阵

矩阵

矩阵,行列相同的二位数组

矩阵是很多科学与工程计算领域研究的数学对象。在数据结构中,主要讨论如何在节省存储空间的情况下使矩阵的各种运算能高效地进行。

压缩存储

在一些矩阵中,存在很多 值相同的元素 或者是 0元素。为了节省存储空间,可以对这类矩阵进行 压缩存储,即为 多个值相同的元素只分配一个存储单元,对0不分配存储单元。

稀疏矩阵

在一个矩阵中,若 非0元素 的个数远远少于 0元素 的个数,且 非0元素 的分布没有规律,则称之为稀疏矩阵。

存储

分类:

  • 三元组顺序表:三元组表的 顺序存储 结构
  • 十字链表:常用的三元组表的 链式存储 结构

三元组

对于稀疏矩阵,存储非0元素时必须同时存储其位置,即:(行号,列号,元素值)
所以三元组(i,j,α) 可唯一确定矩阵中的一个元素。

特殊矩阵

若矩阵中元素(或非0元素)的 分布有一定的规律,则称之为特殊矩阵。

分类

  • 对称矩阵
  • 三角矩阵
  • 对角矩阵

对称矩阵

从左上到右下,数据成对称分布,如下图:

从左上到右下,是为了方便表示上三角元素、下三角元素:

  • 上三角元素:A[i][j] (i<=j),即 行索引 <= 列索引
  • 下三角元素:A[i][j] (i>=j),即 行索引 >= 索引

三角矩阵

分类

  • 上三角矩阵
  • 下三角矩阵

上三角矩阵

上面数据有意义,下面数据是0,如下图:

在矩阵中下标分别为i和j的元素,对应的一维数组的下标计算公式
为:

(2n-i+1)×i/2+j

下三角矩阵

下面数据有意义,上面数据是0,如下图:

在矩阵中下标分别为i和j的元素,对应的一维数组的下标计算公式
为:

(i+1)×i/2+j

对角矩阵

矩阵中的 非0元素 都集中在 以主对角线为中心 的 对称带状 区域中。

题

设某n阶三对角矩阵 An×n 的示意图如下图所示。若将该三对角矩阵的 非零元素 按 行存储 在 一维数组 B[k] (1≤k≤3*n-2) 中,则k与i、j的对应关系是()

A、k=2i+j-2
B、k=2i-j+2
C、k=3i+j-1
D、K=3i-j+2

分析

  • 一维数组 B[k] (1≤k≤3*n-2),也就是说 k从1开始,即:B[1]、B[2]、B[3]。。。

  • 将 非零元素 按 行存储 在 一维数组,即:

    • 将 a1,1 存储到 B[1] 中,此时:i是1,j是1,k是1
    • 将 a1,2 存储到 B[2] 中,此时:i是1,j是2,k是2
    • 将 a2,1 存储到 B[3] 中,此时:i是2,j是1,k是3

将上面值带入选项A,成立

答案

A


原文出处:/show_1GWuT8zjHa2.html