问题 单项选择题

下三角矩阵如下所示,若将其下三角元素(即行下标不小于列下标的所有元素)按列压缩存储在数组M[0..m]中,即A[0,0]存储在M[0]、A[1,0]存储在M[1]、A[2,0]存储在M[2],…,A[8,8]存储在M[44],则元素A[5,5]存储在__(1)__。若将其下三角元素按行压缩存储在数组M[0..m]中,即A[0,0]存储在M[0]、A[1,0]存储在M[1]、A[1,1]存储在M[2],…,A[8,8]存储在M[44],则元素A[5,5]存储在__(2)__。

空白(2)处应选择()

A.M[15] 

B.M[20] 

C.M[35] 

D.M[39]

答案

参考答案:B

解析:

本题考查数据结构中数组元素存储布局的基本概念。二维数组元素按列存储时,排在A[5,5]之前的元素共5列,第0列为A[0,0]、A[1,0]、A[2,0]、…、A[8,0],第1列为A[1,1]、A[2,1]、…、A[8,1],第2列为A[2,2]、A[3,2]、…、A[8,2],第3列为A[3,3]、A[4,3]、…、A[8,3],第4列为A[4,4]、A[5,4]、…、A[8,4],元素个数为9+8+7+6+5=35,因此A[5,5]存储在M[35]。按行存储时,排在A[5,5]之前的元素共5行,第0行为A[0,0],第1行为A[1,0]、A[1,1],第2行为A[2,0]、A[2,1]、A[2,2],第3行为A[3,0]、A[3,1]、A[3,2]、A[3,3],第4行为A[4,0]、A[4,1]、A[4,2]、A[4,3]、A[4,4],元素个数为1+2+3+4+5=15,在第5行,存储在A[5,5]之前的元素有A[5,0]、A[5,1]、A[5,2]、A[5,3]、A[5,4],因此A[5,5]之前共有1+2+3+4+5+5=20个元素,所以按行方式下,A[5,5]存储在M[20]中。

单项选择题
判断题