A.只有Ⅰ
B.Ⅰ和Ⅱ
C.只有Ⅲ
D.Ⅰ、Ⅱ和Ⅲ
如下是一个稀疏矩阵的三元组法存储表示和基于此表示所得出的相关叙述
Ⅰ.该稀疏矩阵有5行
Ⅱ.该稀疏矩阵有4列
Ⅲ.该稀疏矩阵有6个非0元素,这些叙述中正确的是()。
A)仅Ⅰ
B)Ⅰ和Ⅱ
C)仅Ⅲ
D)全部
如下是一个稀疏矩阵的三元组法存储表示和相关的叙述:
①该稀疏矩阵有5行
②该稀疏矩阵有4列
③该稀疏矩阵有6个非0元素
这些叙述中哪个(些)是正确的? ()
A.只有①
B.①和②
C.只有③
D.①、②和③
试题三(共15分)
阅读以下说明和C函数,回答问题 l和问题 2,将解答填入答题纸的对应栏内。
【说明】
对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为 0的数组元素,并将a中所有的非 O元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1 和CompactArr v2来实现上述处理要求,函数的返回值为非零元素的个数。 函数CompactArr_vl(int a[],int n)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非O元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。
函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为 0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组 a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增 1,而遇到非 0元素并将其前移后k才增 1。
【问题1】 (12分)
请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理
思路填补空缺(4)。
【问题2】(3分)
请说明函数CompactArr vl存在的缺点。
(61)
A. 先序
B. 中序
C. 后序
D. 层序
(62)
A. O(n2
B. O(nlog2n)
C. O(log2n)
D. O(n)
A.for(i=0;i<6;i++) printf("%2d",*(p++));
B.for(i=0;i<6;i++) printf("%2d",*(p+i));
C.for(i=0;i<6;i++) printf("%2d",*p++);
D.for(i=0;i<6;i++) printf("%2d",(*p)++);
A.T<M×N
B.T<M×xN/3
C.T≤((M×N)/3-1
D.T<(M×N)/3-1