《数据结构》习题集:章 数组与广义表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章数组与广义表

一、选择题

1.在以下讲述中,正确的是(B )。

A、线性表的线性存储结构优于链表存储结构

B、二维数组是其数据元素为线性表的线性表

C、栈的操作方式是先进先出

D、队列的操作方式是先进后出

2.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转

置运算,这种观点( B )。

A、正确

B、错误

3.二维数组SA 中,每个元素的长度为3 个字节,行下标I 从0 到7,列下标J 从0 到9,从首地址SA 开始

连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为( B )。

A、SA+141

B、SA+180

C、SA+222

D、SA+225

4.数组SA 中,每个元素的长度为3 个字节,行下标I 从0 到7,列下标J 从0 到9,从首地址SA 开始连续

存放在存储器内,存放该数组至少需要的字节数是( C )。

A、80

B、100

C、240

D、270

5.常对数组进行的两种基本操作是(C )。

A、建立与删除

B、索引和修改

C、查找和修改

D、查找和索引

6.将一个A[15][15]的下三角矩阵(第一个元素为A[0][0]),按行优先存入一维数组B[120]中,A 中元素A[6][5]

在B 数组中的位置K 为(B )。

A、19

B、26

C、21

D、15

7.若广义表A 满足Head(A)=Tail(A),则A 为(B )。

A、()

B、(())

C、((),())

D、((),(),())

8.广义表((a),a)的表头是(C ),表尾是(C )。

A、a

B、b

C、(a)

D、((a))

9.广义表((a,b),c,d)的表头是(C ),表尾是(D )。

A、a

B、b

C、(a,b)

D、(c,d)

10.广义表((a))的表头是(B ),表尾是(C )。

A、a

B、(a)

C、()

D、((a))

11.广义表(a,b,c,d)的表头是(A ),表尾是(D )。

A、a

B、(a)

C、(a,b)

D、(b,c,d)

12.广义表((a,b,c,d))的表头是(C ),表尾是(B )。

A、a

B、()

C、(a,b,c,d)

D、((a,b,c,d))

13.下面结论正确的是(BC )。

A、一个广义表的表头肯定不是一个广义表

B、一个广义表的表尾肯定是一个广义表

C、广义表L=((),(A,B))的表头为空表

D、广义表中原子个数即为广义表的长度

14.广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )

A、(G)

B、(D)

C、C

D、D

15.已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是(D )。

A 、Head(Head(Tail(Tail(L))))

B 、Tail(Head(Head(Tail(L))))

C 、Head(Tail(Head(Tail(L))))

D 、Head(Tail(Head(Tail(Tail(L)))))

16.16、设A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))=( D )

A. (g)

B.(d)

C.c

D.d

17.对矩阵压缩存储是为了(B )

A、方便运算

B、节省空间

C、方便存储

D、提高运算速度

18.稀疏矩阵一般的压缩存储方法有两种,即(C )

A、二元数组和三元数组

B、三元组和散列

C、三元组和十字链表

D、散列和十字链表

二、判断题

1.数组是同类型值的集合。X

2.数组的存储结构是一组连续的内存单元。V

3.数组是一种复杂的数据结构,数组元素之间的关系,即不是线性的也不是树形的。X

4.插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也会经常使用。X

5.使用三元组表表示稀疏矩阵的元素,有时并不能节省存储空间。V

6.广义表是由零个或多个原子或子表所组成的有限序列,所以广义表可能为空表。V

7.线性表可以看成是广义表的特例,如果广义表中的每个元素是原子,则广义表便成为线性表。V

8.广义表中原子个数即为广义表的长度。X

9.广义表中元素的个数即为广义表的深度。X

三、填空题

1.设a 是含有N 个分量的整数数组,则求该数组中最大整数的递归定义为(最大整数的递归定义为:f(k)=a[0](k=0

时)||f(k)=max(f(k-1),a[k])(k>0 时)),最小整数的递归定义为(最小整数的递归定义为:f(k)=a[0](k=0 时)||f(k)=min(f(k-1),a[k])(k>0 时))。

2.二维数组A[10][5]采用行序为主方式存储,每个元素占4 个存储单元,并且A[5][3]的存储地址是1000,则A[8][2]

的地址是(1056 )。

3.二维数组A[m][n]采用行序为主方式存储,每个元素占k 个存储单元,并且第一个元素的存储地址是

Loc(A[0][0]),则A[i][j]的地址是(loc(A[0][0])+(n*I+j)*k )。

4.广义表的(深度)定义为广义表中括弧的重数。

5.设广义表L=((),()),则Head(L)=(() );Tail(L)=((()) );L 的长度是(2 );L 的深度是(2 )。

6.广义表中的元素可以是(原子或子表),其描述宜采用程序设计语言中的(链表)表示。

7.广义表(((a)))的表头是(((a))),表尾是(() )。

8.广义表((a),((b),c),(((d))))的表头是((a)),表尾是((((b),c),(((d)))) )。

9.设广义表A=(x,((a,b),c,d)),则Head(Head(Tail(A)))=((a,b))。

10.设广义表A=(a,b,c),B=(A,(c,d)),C=(a,(B,A),(e,f)),则

(1)Head(A)=( a ) (2)Tail(B)=( ((c,d)) )

(3)Head(Head(Head(Tail(C))))=( A )

11.下三角矩阵A[1..N,1..N]的下三角元素已压缩到一维数组S[1..N*(N+1)/2+1]中,若按行序为主序存储,则A[I,j]

对应的S 中的存储位置是()。

相关文档
最新文档