《数据结构》习题集:第5章_数组与广义表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章数组与广义表
一、选择题
1.在以下讲述中,正确的是(B )。
A、线性表的线性存储结构优于链表存储结构
B、二维数组是其数据元素为线性表的线性表
C、栈的操作方式是先进先出
D、队列的操作方式是先进后出
2.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转
置运算,这种观点(A )。
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.常对数组进行的两种基本操作是(B )。
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、散列和十字链表
二、判断题(F/T)
1.数组是同类型值的集合。(T)
2.数组的存储结构是一组连续的内存单元。(T)
3.数组是一种复杂的数据结构,数组元素之间的关系,即不是线性的也不是树形的。(T)
4.插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也会经常使用。(F)
5.使用三元组表表示稀疏矩阵的元素,有时并不能节省存储空间。(F)
6.广义表是由零个或多个原子或子表所组成的有限序列,所以广义表可能为空表。(T)
7.线性表可以看成是广义表的特例,如果广义表中的每个元素是原子,则广义表便成为线性表。()
8.广义表中原子个数即为广义表的长度。(F)
9.广义表中元素的个数即为广义表的深度。(F)
三、填空题
1.设a 是含有N 个分量的整数数组,则求该数组中最大整数的递归定义为(),最小整数的递归定义为
()。
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]+(i*n+m)*k )。
4.广义表的(深度)定义为广义表中括弧的重数。
5.设广义表L=((),()),则Head(L)=(() );Tail(L)=((()) );L 的长度是(2 );L 的深度是(2 )。
6.广义表中的元素可以是(原子和字表),其描述宜采用程序设计语言中的(LISP语言)表示。
7.广义表(((a)))的表头是(((a)) ),表尾是(() )。
8.广义表((a),((b),c),(((d))))的表头是((a) ),表尾是((((b),c),(((d)))) )。
9.设广义表A=(x,((a,b),c,d)),则Head(Head(Tail(A)))=( a )。
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,b,c) )
11.下三角矩阵A[1..N,1..N]的下三角元素已压缩到一维数组S[1..N*(N+1)/2+1]中,若按行序为主序存储,则A[I,j]
对应的S 中的存储位置是()。