数据结构练习 第五章 数组和广义表Word下载.docx
- 文档编号:21088054
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:30
- 大小:165.75KB
数据结构练习 第五章 数组和广义表Word下载.docx
《数据结构练习 第五章 数组和广义表Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构练习 第五章 数组和广义表Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
A.1175B.1180C.1205D.1210
15.若6行5列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储单元,则第3行第4列的元素(假定无第0行第0列)的地址是(A)。
A.1040B.1042C.1026D.备选答案A,B,C都不对
16.稀疏矩阵一般的压缩存储方法有两种,即(C)。
A.二维数组和三维数组B.三元组和散列
C.三元组和十字链表D.散列和十字链表
17.若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i<
j)的位置k的关系为(B)。
A.i*(i-1)/2+jB.j*(j-1)/2+iC.i*(i+1)/2+jD.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+jB.j(j-1)/2+iC.i(j-i)/2+1D.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/2B.(i+1)*i/2C.(2n-i+1)*i/2D.(2n-i-1)*i/2
20.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为(A)。
A.j=r[j].nextB.j=j+1C.j=j->
nextD.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.aabcB.acbaC.acccD.acac
24.将线性表的数据元素进行扩充,允许是带结构的线性表是(C)。
A.串B.树C.广义表D.栈
25.广义表((a,b,c,d))的表头是(C),表尾是(B)。
A.aB.()C.(a,b,c,d)D.(b,c,d)
26.已知Head(Tail([Head(S),Head(Tail(Tail(S)))]))=[a],广义表S满足上式,则S为(F)(其中,方括号表示广义表,圆括号表示函数,如[a,b]表示由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.NILC.(())D.((()))
29.将一个A[1..100][1..100]的三对角矩阵,按行优先存入一维数组B[1..298]中,A中元素a66,65(即该元素下标i=66,j=65)在B数组中的位置K为(A)
A195B196C197D198
30.广义表((a))的表尾是(C)
A、aB、(a)C、()D、((a))
31.已知广义表:
A=(a,b),B=(A,A),C=(a,(b,A),B),求下列运算的结果:
tail(head(tail(C)))=(F)。
A.(a)B.AC.aD.(b)E.bF.(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+jB.j(j-l)/2+iC.j(j-l)/2+i-1D.i(i-l)/2+j-1
33.对矩阵压缩存储是为了(D)。
34.下面说法不正确的是:
()
【解答】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,每个元素占2L个存储单元,按行序为主序存储。
若元素A[i][j]的存储位置为a+66L,则元素A[j][i]的存储位置为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]的地址为______。
1038三对角矩阵按行序存储的地址公式:
k=2(i-1)+j(1<
=i,j<
=n)
25.所谓稀疏矩阵指的是_______。
非零元很少(t<
<
m*n)且分布没有规律
26.对矩阵压缩是为了_______。
节省存储空间。
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,求:
(1)用i,j表示k的下标变换公式;
(2)用k表示i,j的下标变化公式。
【山东科技大学2001一.6(6分)】【长沙铁道学院1997五.1(10分)】
【东北大学2002一(4分)】【北京工业大学2000二.1((9分)】【南京航空航天大学2000四】
三对角矩阵第一行和最后一行各有两个非零元素,其余每行均有三个非零元素,所以共有3n-2个元素。
(1)主对角线左下对角线上的元素下标间有i=j+1关系,k与i和j的关系为k=3(i-1);
主对角线上元素下标间有关系i=j,k与i和j的关系为k=3(i-1)+1;
主对角线右上那条对角线上元素下标间有关系i=j-1,k与i和j的关系为k=3(i-1)+2。
综合以上三等式,有k=2(i-1)+j(1<
=n,|i-j|<
=1)
(2)i=k/3+1;
(1≤k≤3n-2)∥k/3取小于k/3的最大整数。
下同
j=k-2(i-1)=k-2(k/3)=k%3+k/3
3.现有算法及正整数n和数组A如下,求数组C的值。
【北京邮电大学2002五.1(10分)】
VARA,B,C:
Array[1..100]ofinteger;
FUNCAAA(s,t:
integer):
integer;
IFs=tTHENIFB[s]=0THENAAA:
=SELSEAAA:
=-sELSE
BEGIN
l:
=AAA(s,(s+t)DIV2);
r:
=AAA((s+t)DIV2+1,t);
IFl>
0THENAAA:
=lELSEAAA:
=r;
IF(r>
0)AND(A[l]>
A[r])THENAAA:
=r
END
ENDF;
PROCBBB;
FORi:
=1TOnDOB[i]:
=0;
FORi:
=1TOnDOB[AAA(1,n)]:
=i;
=1TOnDOC[B[i]]:
=A[i];
ENDP;
初始值:
n=10,A={121,22,323,212,636,939,828,424,55,262};
这是一个排序程序。
运行后B数组存放A数组各数在排序后的位置。
结果是:
A={121,22,323,212,636,939,828,424,55,262}
B={3,1,6,4,8,10,9,7,2,5}
C={22,55,121,212,262,323,424,639,828,939}
4.设矩阵A为
(1)执行语句
Fori:
=1to3do
Forj:
=1to3do①
C[i,j]=A[A[i,j],A[j,i]]
结果C矩阵的值是什么?
(2)所选择的下标i,j的次序有关系吗?
(3)在语句①中,用A代替C,A的结果值是什么?
(4)对i,j这对下标取反序,即(3,3),(3,2),(3,1),…,(1,3),(1,2),(1,1)
重复执行(3),把所得结果与(3)中所得结果作比较。
(1)同上面22题
(1)
(2)对c数组的赋值同所选择的下标i和j的次序(指外层循环用j内层用i)没有关系
(3)同上题22
(2)
(4)对i,j下标取反序后,重复执行第(3)步,A数组所有元素均变为2。
(在机器上验证,反复循环3次后,所有元素均变为2)
5.什么是广义表?
请简述广义表和线性表的主要区别。
【解答】广义表是零至多个元素的有限序列,广义表中的元素可以是原子,也可以是子表。
从“元素的有限序列”角度看,广义表满足线性结构的特性:
在非空线性结构中,只有一个称为“第一个”的元素,只有一个称为“最后一个”的元素,第一元素有后继而没有前驱,最后一个元素有前驱而没有后继,其余每个元素有唯一前驱和唯一后继。
从这个意义上说,广义表属于线性结构。
当广义表中的元素都是原子时,广义表就蜕变为线性表。
6.求广义表D=(a,(b,(),c),((d),e))的长度和深度。
【解答】3和3
7.下列广义表,可以唯一对应一棵二叉树的有()。
并归纳出唯一对应的条件。
(1)(A(B(D,E),C(F)))
(2)(A(B(D,E),C))
(3)(A)(4)(A(B(C,D(E))))(5)()
【解答】唯一对应一棵二叉树的有
(2)、(3)和(5)。
唯一对应的条件:
空表,或只有一个元素的表,或每个子表个数是零或是2的表。
8.有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,A[1][1]为第一元素,其存储地址为1,每个元素占一个地址空间,求A[7][5]和A[5][6]的地址。
【解答】按照公式:
LOC(A[7][5])=7(7-1)/2+5=26
LOC(A[5][6])=LOC(A[6][5])=6(6-1)/2+5=20
9.设有一个二维数组A[m][n],设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?
【解答】因为A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,说明一行有15个元素(算法:
(676-2-644)/2)。
A[3][3]存放位置是692。
10.二维数组A[9][10]的元素都是6个字符组成的串,请回答下列问题:
(1)存放A至少需要()个字节;
(2)A的第7列和第4行共占()个字节;
(3)若A按行存放,元素A[7][4]的起始地址与A按列存放时哪一个元素的起始地址一致。
【解答】按照题5.1给出的公式:
(1)存放A需要9*10*6=540个字节
(2)A的第7列和第4行共占(9+10-1)*6=108个字节
(3)LOC(A[7][4])=LOC(A[0][0])+[7*10+4]*L(按行序存储)
LOC(A[i][j])=LOC(A[0][0])+[j*9+i]*L(按列序存储,0<
=i<
=8,0<
=j<
=9)所以,i=2,j=8。
即元素A[7][4]的起始地址与A按列存放时A[2][8]的起始地址一致。
五、应用题
1.画出广义表LS=((),(e),(a,(b,c,d)))的头尾链表存储结构。
【解答】
2.已知一个稀疏矩阵如下图所示:
0400000
000-3001
8000000
0005000
0-700020
0006000
具有6行×
7列的一个稀疏矩阵
(1)写出它的三元组线性表;
(2)给出它的顺序存储表示;
(3)给出它的转置矩阵的三元组线性表和顺序存储表示;
(1)((1,2,4),(2,4,-3),(2,7,1),(3,1,8),(4,4,5),(5,2,-7),(5,6,2),(6,4,6))
1
2
4
5
6
7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构练习 第五章 数组和广义表 数据结构 练习 第五 数组 广义
![提示](https://static.bdocx.com/images/bang_tan.gif)