2016 数据结构 特殊矩阵三对角矩阵 选择题
第 4 题

有一个 100 阶的三对角矩阵M,其元素mi,j(1≤i≤100,1≤j≤100)按行优先依次压缩存入下标从 0 开始的一维数组 N 中。元素m30,30在数组 N 中的下标是( )。

特殊矩阵 三对角矩阵

A. 86 B. 87 C. 88 D. 89

[tag_link]

正确答案:B

参考三对角矩阵,采用压缩存储,将 3 条对角线上的元素按行优先方式存放在一 维数组 B 中,且a1,1存放于 B[0] 中,其存储形式如下所示: 可以计算矩阵 A 中 3 条对角线上的元素ai,j(1≤i,j≤n,∣i−j∣≤1) 在一维数组 B 中存放的下标为k=2i+j−3。 解法一:针对该题,仅需将数字逐一代入公式里面即可:k=2x30+30-3 = 87, 结果为 87。 解法二:观察上图的三对角矩阵不难发现,第一行有两个元素,剩下的在元素m30,30所在行之前的 28 行(注意下标1≤i≤100、1≤j≤100)中每行都有 3 个元素,而m30,30之前仅有一个元素m30,29, 那么不难发现元素m30,30在数组 N 中的下标是:2+28x3+2-1 = 87。