第五章数组与广义表(作业) 下载本文

第四章 数组与广义表(作业)

一、判断题

1. 数组是同类型值的集合。 2. 数组是一组相继的内存单元。

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

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

5. 数组的存储方式分为顺序和链式两种。

6. 使用三元组表表示稀疏矩阵的元素,有时并不能节省存储空间。 7. 广义表是由零或多个单元素或子表所组成的有序列,所以广义表可能为空表。

8. 线性表可以看成是广义表的特例,如果广义表中的每个元素都是单元素,则广义表便成为线性表。 二、选择题

1. 一个n*n的对称矩阵,如果以行或列为主序存入内存,则其容量为( )。

A.n*n B.n*n/2

C.n(n+1)/2

F.n(n-1)

D.(n+1)*(n+1)/2 E.(n-1)*n/2

2. 在二维数组A[7][9]中,假定每个数据元素占4个存储单元, A00

的存储位置(基地址)为100,则A56的存储位置为( )。

A.232 B.151

C.204

D.304

3. 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每个元素占1个地址空间,则a85的地址为( )。 A.13 B.33 C.18

D.40

4. 二维数组a的每个元素是由6个字符组成的串,行下标i的范围从0-8,列下标j的范围是从1-10。 (1)存放a至少需要( )个字节。 A.90 B.180 C.240 D.270

E.540

(2) A的第8列和第5行共占( )字节。

A.108 B.114 C.54

D.60

E.150

(3) 若a按行存放,元素a[8,5]的起始地址与当a按列存放的元素( )的起始地址一致。

A.a[8,5] B. a[3,10] C.a[5,8]

D. a[0,9]

5. 已知广义表LS=(a,(b,c,c),e),运用HEAD和TAIL函数取出LS中的单元素b的运算是( )。

A.HEAD(HEAD(LS))

B.TAIL(HEAD(LS))

C.HEAD(HEAD(TAIL(LS))) D.HEAD(TAIL(LS))

6. 已知广义表A=((a,b,c),(d,e,f)),从A中取出单元素e的运算是( )。

A.TAIL(HEAD(A)) B.HEAD(TAIL(A))

C.HEAD(TAIL(TAIL(HEAD(A)))) D.HEAD(TAIL(HEAD(TAIL(A)))) E.HEAD(TAIL(TAIL(A)))

7. 设广义表LS=(a,b,LS), 其长度是( ),其深度为( )。

A.∞

B.3

C.2

D.5

8. 下列广义表为线性表的是( )。

A.E(a,(b,c)) B.E(a,E) C.E(a,b)

D.E(a,L())

三、填空题

1. 求出下列广义表操作的结果: HEAD(((p,h,w)))=(

),

TAIL(((b,k,p,h)))=( ), HEAD(((a,b),(c,d)))= ( TAIL(((a,b),(c,d)))= (

),

), HEAD(TAIL(((a,b),(c,d))))= (

),

),

TAIL(HEAD(((a,b),(c,d))))= (

HEAD(TAIL(HEAD(((a,b),(c,d)))))= (

TAIL(HEAD(TAIL(((a,b),(c,d)))))=( )

2. 利用广义表的HEAD和TAIL函数将原子banana分别从下列广义表中分离出来:

1) L1=(apple,pear,banana,orange),则分离式=(

) ) )

2) L2=((apple,pear),(banana,orange)),则分离式=(

3) L3=(((apple),(pear),(banana),(orange))),则分离式=(

4) L4= (apple,(pear),((banana)),(((orange)))),则分离式=( ) 5) L5=((((apple))),((pear)),(banana),orange),则分离式=( 6) L6=((((apple),pear),banana),orange),则分离式=( 7) L7=(apple,(pear,(banana),orange)),则分离式=(

) ) )