单项选择题
————————————————————
————————————————————
解析:特殊矩阵中含有很多相同元素或零元素,所以可采用压缩存储,以节省存储空间。
正确答案:D
————————————————————
————————————————————
解析:只需存储其上三角或下三角部分(含对角线),元素个数为n+(n-1)+…+ 1 = n(n+ 1)/2。
正确答案:C
————————————————————
————————————————————
解析:此题要注意3个细节:矩阵的最小下标为0;数组下标也是从0开始的;矩阵按行优先存在数组中。注意到此三点,答案不难得到为A。此外,本类题建议采用特殊值代入法求解,例如,A[1][1]对应的下标应为2,代入后只有A满足条件。
技巧:对于特殊三角矩阵压缩存储的题,心中应有“平移”搬动的思想,并结合草图,这样会比较形象,在计算时再注意矩阵和数组的起始下标,就不容易出错。
正确答案:A
————————————————————
————————————————————
解析:SA+(8×10+5)×3 =SA+255,所以选D。
正确答案:D
————————————————————
————————————————————
解析:本题未直接给出数组A的行数和列数,因此需要根据题目中的信息来推理。因为该二维数组按行优先存储,且A[3][3]的存储地址为446,所以A[3][1]的存储地址为444,又A[1][1]的存储地址为420,显然A[1][1]和A[3][1]正好相差2行,所以该矩阵的列数为12。而A[5][3]和A[3][3]正好相差2行,A[5][5]和A[5][3]又相差2个元素,所以A[5][5]的存储地址是446+24+2=472。
正确答案:A
————————————————————
————————————————————
解析:对于三对角矩阵,将A[ 1...n ] [ 1...n ]压缩至B[...3n-2]时, ax,j与b,的对应关系为k=2i+j-2。则A中的元素A[66] [65]在数组B中的位置k为2×66+65-2=195.
正确答案:B
————————————————————
————————————————————
解析:按列优先存储,所以元素ai,j前面有j-1列,共有1+2+3+…+j-1=j(j-1)/2个元素,元素ai,j在第j列上是第i个元素,数组B的下标是从1开始,因此k=八j-1)/2+i。
正确答案:
————————————————————
————————————————————
解析:按列优先存储,所以元素ai,j之前有j-1列,共有n+(n-1)+…+(n-j+2)=(j-1)(2n-j+2)/2个元素,元素ay是第j列上第i-j+1个元素,数组B的下标从1开始,k=(j-1)(2n-j+2)2+i-j+1。
正确答案:B
————————————————————
————————————————————
解析:稀疏矩阵通常采用三元组来压缩存储,存储矩阵元素的行列下标和相应的值,因此不能根据矩阵元素的行列下标快速定位矩阵元素,失去了随机存取的特性。
正确答案:B
————————————————————
————————————————————
解析:在三对角矩阵中,第1行和最后1行只有2个非零元,其余各行均有3个非零元。稀疏矩阵的特点是矩阵中非零元的个数较少。
正确答案:D
————————————————————
————————————————————
解析:元素m30,30在数组N中的下标是2+28×3+2-1=87。
正确答案:B
————————————————————
————————————————————
解析:三元组表的结点存储了行(row)、列(col)、值(value)三种信息,是主要用来存储稀疏矩阵的一种数据结构。十字链表将行单链表和列单链表结合起来存储稀疏矩阵。邻接矩阵空间复杂度达o(n),不适合于存储稀疏矩阵。二叉链表又名左孩子右兄弟表示法。可用于表示树或森林。
正确答案:A
————————————————————
————————————————————
解析:在C语言中,数组N的下标从0开始。第一个元素m,,对应存入n,矩阵M的第一行有12个元素,第二行有11 个,第三行有10个,第四行有9个,第五行有8个,所以m6,6是第12+11+10+9+8+1=51个元素,下标应为50。
正确答案:B
————————————————————
————————————————————
解析:m7,2在数组N中的下标为22。
正确答案:C
————————————————————
————————————————————
解析:二维数组A按行优先存储,每个元素占用1个存储单元,由A[0][0]和A[3][3]的存储地址可知A[3][3]是二维数组A中的第121个元素,假设二维数组A的每行有n个元素,则n×3+4=121,求得n=39,所以元素A[5][5]的存储地址为100+ 39x5+6-1=300。
正确答案:B
————————————————————
————————————————————
解析:用三元组表存储结构存储稀疏矩阵M时,每个非零元素都由三元组(行标、列标、关键字值)组成。但是,仅通过三元组表中的元素无法判断稀疏矩阵M的大小,因此还要保存M的行数和列数。此外,还可以保存M的非零元素个数。
正确答案:A