第五章 数组和广义表 一、选择题
1.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.696 2.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为( )。
A. 10 B. 19 C. 28 D. 55
3.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相
同的( )。
A.行号 B.列号 C.元素值 D.地址
4.设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。
A.3700 B.4376 C.3900 D.4620 5.数组A[0..5][0..5]的每个元素占5个字节,将其以列为主序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是( ) A.1175 B.1180 C.1205 D.1210
?124???35???, 则A[i]6. 设有二维数组A[n][n]表示如下:?[i](0≤
?6???????i≤n-1)的值为( )
A.i*(i-1)/2 B.i*(i+1)/2 C.(i+2)*(i+1)/2 D.i2/2 7.二维数组A[10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A[0][0]的存储地址为300,则A[10][10]的地址为( ) A.700 B.1120 C.1180 D.1140 8.设有一5阶上三角矩阵A[1..5,1..5],现将其上三角中的元素按列优先顺序存放在一堆数组B[1..15]中。已知B[1]的地址为100,每个元素占用2个存储单元,则A[3,4]的地址为( )
A.116 B.118 C.120 D.122
9.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的( )。
A.行号 B. 列号 C.元素值 D.地址
10.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为( )。
A. O(1) B. O(n) C. O(n2) D. O(log2n)
11.设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[ ]中,A[0][0]存入B[0]中,则A[8][5]在B[ ]
1
中( )位置。
A.32 B.33 C.41 D.65 12.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A. 13 B. 33 C. 18 D. 40 13.数组通常具有的两种基本操作是( A )。
A.查找和修改 B. 查找和索引 C. 索引和修改 D.建立和删除
14.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( A )。
A. 1175 B. 1180 C. 1205 D. 1210
15.若6行5列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储单元,则第3行第4列的元素(假定无第0行第0列)的地址是(A)。 A. 1040 B. 1042 C. 1026 D.备选答案A,B,C都不对 16.稀疏矩阵一般的压缩存储方法有两种,即( C )。 A.二维数组和三维数组 B.三元组和散列 C.三元组和十字链表 D.散列和十字链表
17.若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i A. i*(i-1)/2+j B. j*(j-1)/2+i C. i*(i+1)/2+j D. j*(j+1)/2+i 18.A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是(B )。 A. i(i-1)/2+j B. j(j-1)/2+i C. i(j-i)/2+1 D. j(i-1)/2+1 19.设有一个n行n列的对称矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中( A )处。 A.(i+3)*i/2 B. (i+1)*i/2 C. (2n-i+1)*i/2 D.(2n-i-1)*i/2 20.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j 沿链移动的操作为(A )。 A. j=r[j].next B. j=j+1 C. j=j->next D. j=r[j]-> next 21.对矩阵压缩存储是为了(D )。 A.方便运算 B.方便存储 C.提高运算速度 D.减少存储空间 22.一个非空广义表的表尾( B )。 A. 不能是子表 B. 只能是子表 C. 只能是原子 D. 是原子或子表 23.某字符串满足:concat(head(s),head(tail(tail(s))))=“ac”,(head,tail的定义同广义表),则S=( C ) 。 A. aabc B. acba C. accc D. acac 24.将线性表的数据元素进行扩充,允许是带结构的线性表是( C )。 A. 串 B. 树 C. 广义表 D. 栈 25.广义表((a,b,c,d))的表头是(C ),表尾是( B)。 A. a B.() C.(a,b,c,d) D.(b,c,d) 26.已知Head(Tail([Head(S),Head(Tail(Tail(S)))]))=[a],广义表S满足上式,则S为( F )(其中,方括号表示广义表,圆括号表示函数,如[a,b]表示由 2 a,b 构成的广义表,而Head()表示取广义表的头部)。 A.[[a,b],b,a] B.[[b,a],[a],[b]] C.[[a],[a,b],[b]] D.[b,[a],[a,b]] E.[[a],[b],[b,a]] F.[[b],[b,a],[a]] 27.下面说法不正确的是( A )。 A. 广义表的表头总是一个广义表 B. 广义表的表尾总是一个广义表 C. 广义表难以用顺序存储结构 D. 广义表可以是一个多层次的结构 28.广义表(())的表头是( A ),表尾是( A )。 A.() B. NIL C. (()) D.((())) 29.将一个A[1..100][1..100]的三对角矩阵,按行优先存入一维数组B[1..298]中,A中元素a66,65(即该元素下标i=66,j=65)在B数组中的位置K为(A ) A 195 B 196 C 197 D 198 30.广义表 ((a)) 的表尾是( C ) A、a B、(a) C、( ) D、((a)) 31.已知广义表: A=(a,b), B=(A,A), C=(a,(b,A),B), 求下列运算的结果: tail(head(tail(C))) =( F )。 A.(a) B. A C. a D. (b) E. b F. (A) 32.设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为( B )。 A. i(i-l)/2+j B. j(j-l)/2+i C. j(j-l)/2+i-1 D. i(i-l)/2+j-1 33. 对矩阵压缩存储是为了( D )。 A.方便运算 B.方便存储 C.提高运算速度 D.减少存储空间 34. 下面说法不正确的是: ( ) A. 广义表的表头总是一个广义表 B. 广义表的表尾总是一个广义表 C. 广义表难以用顺序存储结构 D. 广义表可以是一个多层次的结构 【解答】A 二、填空题 1.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有_______个数据元素。i(i+1)/2+j-1 2.从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。O(n)、O(m*n) 3.在稀疏距阵所对应的三元组线形表中,每个三元组元素按____________为主序,__________为辅序的次序排列。行号,列号 4.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为________________域和______________域。值(或data), 子表指针(或sublist) 5.对稀疏矩阵进行压缩存储的目的是节省______存储空间______。 6.设数组A[0..8][0..8]的起始元素位置为a,每个元素占2 L个存储单元,按行序为主序存储。若元素A[i][j]的存储位置为a+66 L,则元素A[j][i] 3 的存储位置为a+120L_______。 7.二维数组在机器级的具体实现,通常均采用__顺序和二叉链表___存储结构。 8.在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的________、________和________三项。行号、列号、元素值 9.在稀疏矩阵所对应的三元组线性表中,每个三元组元素按________为主序、________为辅序的次序排列。行号、列号 10.在稀疏矩阵的顺序存储中,利用一个数组来存储非零元素,该数组的长度应________对应三元组线性表的长度。等于 11.在稀疏矩阵的带行指针向量的链接存储中,每个结点包含有________个域,在相应的十字链接存储中,每个结点包含有________个域。4 、5 12.在稀疏矩阵的十字链接存储中,每个结点的down指针域指向________相同的下一个结点,right指针域指向________相同的下一个结点。列号、行号 13.一个广义表中的元素分为________元素和________元素两类。单、表 14.一个广义表的深度等于________嵌套的最大层数。括号 15.在广义表的存储结构中,每个结点均包含有________个域。3 16.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为________域和________域。元素值、子表指针 17.若把整个广义表也看为一个表结点,则该结点的tag域的值为________,next域的值为________。true、NULL 18.设二维数组A的行和列的下标范围分别为[0:8]和[0:10],每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b,则存储位置为b+50处的元素为 。A[2][3] 19.设数组a[1..50,1..80]的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[45,68]的存储地址为_(1)_;若以列序为主序顺序存储,则元素a[45,68]的存储地址为_(2)_。(1)9174(2)8788 20.三维数组a[4][5][6](下标从0开始计,a有4*5*6个元素),每个元素的长度是2,则a[2][3][4]的地址是____。(设a[0][0][0]的地址是1000,数据以行为主方式存储) 1164 公式:LOC(aijk)=LOC(a000)+[v2*v3*(i-c1)+v3*(j-c2)+(k-c3)]*l (其中,l为每个元素所占单元数,vi是第i维的元素个数=(di-ci+1),ci和di分别是第i维的界偶。) 21.已知二维数组A[1..10,0..9]中每个元素占4个单元,在按行优先方式将其存储到起始地址为1000的连续存储区域时,A[5,9]的地址是:_______。1196 22.用一维数组B与列优先存放带状矩阵A中的非零元素A[i,j](1≤i≤n,i-2≤j≤i+2),B中的第8个元素是A中的第(1)_行,第(2)_列的元素。第1行第3列,这是一个五对角矩阵。 23.设数组A[0..8,1..10],数组中任一元素A[i,j]均占内存48个二进制位,从首地址2000开始连续存放在主内存里,主内存字长为16位,那么 (l) 存放该数组至少需要的单元数是_______; (2) 存放数组的第8列的所有元素至少需要的单元数是_______; (3) 数组按列存储时,元素A[5,8]的起始地址是_______。 (1)270 (2)27 (3)2204 24.己知三对角矩阵A【1..9,1..9】的每个元素占2个单元,现将其三条对角线上的元素逐行存储在起始地址为1000的连续的内存单元中,则元素A[7,8]的 4 地址为______。 1038 三对角矩阵按行序存储的地址公式:k=2(i-1)+j (1<=i,j<=n) 25.所谓稀疏矩阵指的是_______。非零元很少(t< 27.设广义表L=((),()), 则head(L)是(1)___;tail(L)是(2)____;L的长度是(3)___;深度是 (4)__。(1)() (2)(()) (3)2 (4)2 28.广义表(a,(a,b),d,e,((i,j),k))的长度是(1)_,深度是(2)_。 (1)5 (2)3 29.设有广义表A=(((a,b), x), ((a),(b)),(c,(d, (y)))),得到 y的对广义表A的操作序列是_____。head(head(tail(head(tail(head(tail(tail(A)))))))) 30.Tail[Tail[Head[(((a,b),((c))),(d),((e,f)))]]]的运算结果是______,其中“[]”是函数的符号;() 31.已知广义表A=(((a,b),(c),(d,e))),head(tail(tail(head(A))))的结果是_______。(d,e) 32. 广义表((a,b),c,d)的表头是 ,表尾是 。(a,b) 、 (c,d) 三、判断题 1.( )二维数组和多维数组均不是特殊的线性结构。F 2.( )稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。T 3.( )从逻辑结构上看,n维数组的每个元素均属于n个向量。√ 4.( )数组是同类型值的集合。× 5.( )二维以上的数组其实是一种特殊的广义表。√ 6.( )广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。× 7.( )所谓取广义表的表尾就是返回广义表中最后一个元素。× 8.( )广义表的同级元素(直属于同一个表中的各元素)具有线性关系。√ 9.( )对长度为无穷大的广义表,由于存储空间的限制,不能在计算机中实现。√ 10.( )一个广义表可以为其它广义表所共享。√ 11.( )数组是一种线性结构,因此只能用来存储线性表。× 12.( )广义表(((a,b,c),d,e,f))的长度是4。× 13.( ) 广义表的深度是指其中所含的不同原子的个数。X 14.( )若一个广义表的表头为空表,则此广义表亦为空表。× 15.( )稀疏矩阵压缩存储后,必会失去随机存取功能。√ 四、简答题 1.数组A[0..8, 1..10] 的元素是6 个字符组成的串,则存放A至少需要多少个字节? A 的第8列和第5行共占多少个字节 ?若A 按行优先方式存储,元素A[8,5]的起始地址与当A按列优先方式存储时的哪个元素的起始地址一致? 【厦门大学 2000 五.3(14%/3分)】 (1)540 (2)108 (3)i=3,j=10,即A[3,10] 2.设有三对角矩阵(aij)n*n,将其三条对角线上的元素逐行地存于数组B(1:3n-2)中,使得B[k]=aij,求: 5 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第五章 数组和广义表在线全文阅读。
相关推荐: