MOOC 数据结构 第七周 数组和稀疏矩阵

1.有一个三维数组A[-2…2][-4…5][2…6],其中元素个数是(C )。
A.396
B.144
C.250
D.60
解析: C、A的第1维长度为5,第2维长度为10,第3维长度为5,元素个数=5×10×5=250。
2.设C/C++二维数组a[m][n],每个数组元素占用k个存储单元,第一个数组元素的存储地址是LOC(a[0][0]),求按行优先顺序存放的数组元素a[i][j](0≤i≤m-1,0≤j≤n-1)的存储地址为(C )。
A.LOC(a[0][0])+[(j-1)×m+i-1]×k
B.LOC(a[0][0])+[j×m+i]×k
C.LOC(a[0][0])+[i×n+j]×k
D.LOC(a[0][0])+[(i-1)×n+j-1]×k
3.设二维数组a[1…5][1…8],若按行优先的顺序存放数组的元素,则a[4][6]元素的前面有( A)个元素。
A.29
B.40
C.6
D.28
4.设C/C++二维数组a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放所有数组元素,a[3][5]的存储地址为1000,则a[0][0]的存储地址是( D)。
A.872
B.864
C.868
D.860
5.一个n阶对称矩阵A采用压缩存储方式,将其下三角部分(含主对角线元素)按行优先存储到一维数组B中,则B中元素个数是(A )。
A.n(n+1)/2
B.n(n+1)/2+1
C.n
D.nn
6.一个n阶对称矩阵A[1…n,1…n]采用压缩存储方式,将其下三角部分按行优先存储到一维数组B[1…m]中,则A[i][j](i<j)元素在B中的位置k是(A )。
A.j(j-1)/2+i
B.i(i-1)/2+j-1
C.j(j-1)/2+i-1
D. i(i-1)/2+j
7.一个n阶上三角矩阵A按行优先顺序压缩存放在一维数组B,则B中元素个数是(B )。
A.n(n+1)/2
B.n(n+1)/2+1
C.n
n
D.n
8.一个n(n>3)阶三对角矩阵A按行优先顺序压缩存放在一维数组B,则B中元素个数是( B)。
A.2n
B.3n-2
C.n*n
D.3n
9.稀疏矩阵常用的压缩存储方法有(D )。
A.三元组和哈希表
B.哈希表和十字链表
C.二维数组
D.三元组和十字链表
10.稀疏矩阵采用压缩存储后的缺点之一是(C )。
A.无法判断矩阵的行列数
B.无法由行、列值查找某个矩阵元素
C.丧失随机存取特性
D.使矩阵元素之间的逻辑关系更加复杂
1 .为什么数组极少使用链式结构存储?
答:数组的所有元素存储在一块地址连续的内存单元中,属于顺序存储结构。
2 .设有一个C/C++二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占1个字符,问A[3][3]存放在什么位置?
答:692。
3 .如果某个一维数组A的元素个数n很大,存在大量重复的元素,且所有元素值相同的元素紧跟在一起,请设计一种压缩存储方式使得存储空间更节省,并通过一个示例进行说明。
答:采用顺序表存储方法。存储相同元素和相同元素的个数。
如:1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 77
1 5 2 7 3 5 4 4 5 4 6 4 7 5
4 .特殊矩阵和稀疏矩阵哪一种压缩存储后失去随机存取的功能?为什么?
答:稀疏矩阵。稀疏矩阵用十字链表作为存储结构自然失去了随机存取的功能。即便用三元组表的顺序存储结构,存取下标为i和j的元素时,要扫描三元组表,时间复杂度为O(t),因此也失去了随机存取的功能。
5 .用十字链表表示一个有k个非零元素的m×n的稀疏矩阵,则其总的节点数为多少?
答:m+n+k.
//如果有错误,请大家指正。

猜你喜欢

转载自blog.csdn.net/weixin_46226815/article/details/107786936