帮帮忙吧 解决一下这道数据结构的题 答案选2 详细点啊 谢了

2025-04-14 00:19:39
推荐回答(2个)
回答1:

按行存储就是M00,M01,...M05,M10,M11,...M15,...M40,M41,...M45
按列存储就是M00,M10,...M40,M01,M11,...M41,...M05,M15,...M45
要起始地址相同就是说按照两种不同的方法排下来,两个元素所处的位置是一样的,M[3,5]在第一列里处于第3*5+5=20个位置,那么在第二列里处于第20个位置的那个元素就拥有和M[3,5]相同的起始地址,M[3,4]在第二列里处于4*4+(3+1)=20,刚好是所要求的。

回答2:

将二维数组压缩成一维数组,按行存储时,任意M[a,b]为第a*6+b+1个元素,比如M[0,0]就是第1个元素,M[3,5]为第3*6+5+1=24个元素(可以验证:依次为M[0,0]~M[0,5],M[1,0]~M[1,5],M[2,0]~M[2,5],M[3,0]~M[3,5])。

按列存储时,任意M[a,b]为第b*5+a+1个元素,而M[3,4]恰为第4*5+3+1=24个元素。所以选2。