数据结构复习题-第5章答案2014-6-16 下载本文

内容发布更新时间 : 2024/5/3 0:08:32星期一 下面是文章的全部内容请认真阅读。

...

第 5 章 数组与广义表

一、选择题(每小题 1 分,共 10 分) 1. 一个向量第一个元素的存储地址是 ( A A.110

)。 B.108

C.100 D.120

占用 3 个存储字节,行下标 i 从 1 到 8,列下标 j 100,每个元素的长度为

2,则第 5 个元素的地址是

2. 在数组 A 中,每一个数组元素 A[i][j] 储字节数是( C A.80

B.100

)。 C.240

D.270

从 1 到 10。所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存

3. 假设有 60行 70列的二维数组 a[1 , 60, 1, 70] 以列序为主序顺序存储, 其基地址为 10000, 每个元素占 2 个存储单元, 那么第 32 行第 58 列的元素 a[32,58] 的存储地址为 ( C 第 0 行第 0 列元素) A.16902 B.16904

C.14454

D.

答案 A, B, C 均不对

B[1 ‥298] 中,A 中元 )。

1000 的

4. 将一个 A[1..100 ,1..100] 的三对角矩阵,按行优先存入一维数组 素 A6665(即该元素下标 i=66 ,j=65 ),在 B 数组中的位置 K 为( A A. 198

B. 195

C. 197

D.196

)。

,1..100] ,设每个数据元素占 2 个存储

5. 数组 A[0..5,0..6] A. 1175

B. 1180

)。( 无

的每个元素占五个字节, 将其按列优先次序存储在起始地址为 C. 1205

D. 1210 A=array[1..100

)。

内存单元中,则元素 A[5 ,5] 的地址是( A 6. 假设以行序为主序存储二维数组 A. 808

B. 818

C. 1010

单元,基地址为 10,则 LOC[5,5]= ( B

D. 1020

7. 设有数组 A[i,j] ( B

)。

B. BA+180

C. BA+222

,数组的每个元素长度为

3 字节, i 的值为 1 到 8,j 的值为 1 到 10,

A[5,8] 的存储首地址为

数组从内存首地址 BA开始顺序存放,当用以列为主存放时,元素 A. BA+141

D. BA+225

a85 的地址为( B 、 40

8. 设有一个 10 阶的对称矩阵 A,采用压缩存储方式, 以行序为主存储, a11 为第一元素,其 存储地址为 1,每个元素占一个地址空间,则 A、 13

B

、 33

C

、 18

D

9. 二维数组

A 的每个元素是由

)。

i=0,1, , ,8, 列下标

6 个字符组成的串,其行下标

j=1,2, , ,10 。若 A 按行先存储, 元素 A[8,5] 的起始地址与当 A按列先存储时的元素 ( B 的起始地址相同。设每个字符占一个字节。 A、 A[8,5]

B

、 A[3,10]

C

、 A[5,8]

D

、 A[0,9]

10. 若对 n 阶对称矩阵 A以行序为主序方式将其下三角形的元素 依次存放于一维数组 B[1..(n(n+1))/2 ( B

)。

B

、 j*(j-1)/2+I B D )。

、 j=j+1

C

、 j=j->next

D B

)。

、 j=r[j]-> next

中含有元素的个数为(

C C

)。

、 i*(i+1)/2+j

D

、 j*(j+1)/2+i

A、 i*(i-1)/2+j

( 包括主对角线上所有元素 )

]中,则在 B 中确定 aij (i

11. 对稀疏矩阵进行压缩存储目的是( A、便于进行矩阵运算 C、节省存储空间 动的操作为( A A、 j=r[j].next

B

、便于输入和输出 、降低运算的时间复杂度

12. 数组 r 存储静态链表, 结点的 next 域指向后继, 工作指针 j 指向链中结点, 使 j 沿链移

13. 数组 A[0..4,-3..-1,5..7]

...

...

A、 55 B 、 45 C 、 36 B

D )。

D A C

、 16

2 字节,则用三元组表

14. 有一个 100*90 的稀疏矩阵,非0 元素有 10 个,设每个整型数占 示该矩阵时,所需的字节数是( A、 60

B

、 66

C

、 18000

、 33

15. 设二维数组 A[1.. m,1.. n] (即 m行 n 列)按行存储在数组 元素 A[i ,j] 在一维数组 B 中的下标为( A、( i-1 )*n+j

B

、(i-1 )*n+j-1 a[i][j]

)。

、 i* (j-1 )

)。

B[1..m*n] 中,则二维数组 D

、 j*m+i-1 T[N(N+1)/2] (i-1 )/2+1

)。

16.A[N ,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组 中,则对任一上三角元素 A.i (i-1 )/2+j

B. j

对应T[k] 的下标 k 是( B

C. i

(j-1 ) /2+I

(j-i )/2+1

D.j

17. 设 A 是 n*n 的对称矩阵,将 A 的对角线及对角线上方的元素以列为主的次序存放在一维 数组 B[1..n(n+1)/2] A、i(i-l)/2+j

B

中,对上述任一元素 aij(1 ≤ i ,j ≤ n,且 i ≤ j) 在 B中的位置为 ( B 、j(j-l)/2+I

C

、 j(j-l)/2+i-1 A[c1..d1,c2..d2] 的存储位置可由(

×k

×k ×k ×k B D

、i(i-l)/2+j-1

k 个存

中, c1 和 d1 分别为数组 A )确定。

18. 对于以行为主序的存储结构来说.在数组 的第一维下标的下、上界, 储单元,二维数组中任一元素

a[i,j]

c2 和 d2 分别为第二维下标的下、上界.每个数据元素占

A 、 Loc[i,j]=[(d2-c2+1)(i-c1)+(j-c2)]

C 、 Loc[i,j]=A[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] D 、 Loc[i,j]=Loc[0,0]+[(d2-c2+1)(i-c1)+(j-c2)]

B 、 Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)]

19. 设矩阵 A 是一个对称矩阵, 为了节省存储, 将其下三角部分 ( 如下图所示 ) 按行序存放在 一维数组 B[1..n(n-1)/2]| 位置 k 值是( B A、 i(i-1)/2+j-l B

)。

、 i(i-1)

/2+j C

、 i(i+1)/2+j-1 D

、 i(i+1)

/ 2+j

中,对下三角部分中任一元素

(i 〉=j )在一维数组 B的下标

20. 稀疏矩阵一般的压缩存储方法有 A、二维数组和三维数组 C、三元组和十字链表 参考题:

21. 数组 SZ[-3 , 5,O, A、 88 2、,

B

、 99

B D

( C ) 两种。

、三元组和散列表 、散列表和十字链表

10] 含有元素数目为( C

、 80

D

B )。

i=0 、1、, 、 8.列下标 i=1 、

、 90

22. 二维数组 A 的每个元素是由 6 个字符组成的串,其行下标 的起始地址相同。设每个字符占一个字节。 A、 A[8 ,5] 素,其存储地址为

B

、 A[3 ,10]

C

、 A[5 ,8]

、10。若 A 按行先存储, 元素 A[8,5] 的起始地址与当 A 按列先存储时的元素 ( B

D

、 A[0 , 9]

)。

23. 设有一个 10 阶的对称矩阵 A,采用压缩破除计方式, 以行序为主存储, a1,1 为第一个元

1,每个元素占 1 个地址空间,则 a8,5 的地址为( B

...

...

A、13 B 、33 C 、18 B D

D C

、40 )。

24. 稀疏矩阵进行压缩存储目的是( A、便于进行矩阵运算 C、节省存储空间 移动的操作为( A、j=r[j].next A、 建立与删除B

A B

)。

、便于输入和输出 、降低运算的时间复杂度

next 域指向后继,工作指针j 指向链中结点,使沿链

C ) C

、 访问与修改

D

、 访问与索引

B[1 , )。

、 j=j->next

D

、 j=r[j]-> next

25. 用数组 r 存储静态链表,结点的

、 j=j+1

C

26. 数组的基本操作主要包括(

、 索引与修改

27. 设矩阵 A 是一个对称矩阵,为了节省空间,将其下三角矩阵按行序存放在一维数组 n(n+1)/2] 中,对下三角部分中任一元素 A、 i (i-1 )/2+j-1 C、 i (i+1 )/2+j-1 8. 设有数组 A[i,j] 组从内存首地址 ( B

)。

B

、 BA+180

C

、 BA+222

D

、 BA+225

C

A、 BA+141

B D

、 i (i-1 )/2+j 、 i (i+1 )/2+j

aij (i ≥ j ),在一维数 B 中下标 k 的值是 ( B

,数组的每个元素长度为 3 字节, i 的值为 1 到 8,j 的值为 1 到 10,数

A[8 ,5] 的存储首地址为

BA 开始顺序存放,当用以列为主存放时,元素

数组 A 中, 每个元素的长度为 3 个字节, 行下标 i 从 1 到 8,列下标 j 从 1 到 10,从首地址

A[8][5] 的起始地址为 D

.SA+225

C

.SA+222

SA开始连续存放的存储器内,该数组按行存放,元素 A . SA+141 B . SA+ 144 二、判断题(每小题

1 分,共 10 分)

Am*n 的转置运算。 (

( √

× )

1. 一个稀疏矩阵 Am*n 采用三元组形式表示,若把三元组中有关行下标与列下标的值互换, 并把 m 和 n 的值互换,则就完成了

2. 二维以上的数组其实是一种特殊的广义表。 ( ×

) (

×

( √ ( ×

)

3. 数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。 4. 稀疏矩阵压缩存储后,必会失去随机存取功能。

5. 所谓取广义表的表尾就是返回广义表中最后一个元素。

6. 广义表是由零或多个原予或子表所组成的有限序列,所以广义表可能为空表。 7. 广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。 8. 线性表可以看成是广义表的特例, 性表。 ( √

)

× )

( × )

如果广义表中的每个元素都是原子,

则广义表便成为线

9. 若一个广义表的表头为空表,则此广义表亦为空表。 10. 数组元素的下标值越大,存取时间越长。 11. 数组是一种复杂的数据结构:

12. 从逻辑结构上看, n 维数组的每个元素均属于 13. 二维数组是其数据元素为线性表的线性表 14. 数组是同类型值的集 。合三、填空题(每空 的存储地址为 ≤ m)

( ×

数组元素之间的关系既不是线性的,

n 个向量。( ( √ )

√ )

也不是树形的 ( √ )

1 分,共 10 分)

a11 的存储地址为

LOC (a11),则元素 aij

。(假定每一个元素占

2 个存储单元, 1≤ i≤ n,1≤ j

1.已知二维数组按“行优先顺序”存储在内存中,

LOC (aij)=

答案: Loc(a 11)+((i-1)*m+j-1)*2

...