数据结构练习题-数组和广义表
数据结构(数组和广义表)习题与答案

1、以行序优先顺序存储数组A[5][5];假定A[0][0]的地址为1000, 每个元素占4个字节,下标变量A[4][3]的地址是____。
A.1069B.1092C.1023D.1046正确答案:B2、数组a[1..6][1..5] (无0行0列)以列序优先顺序存储,第一个元素a[1][1]的地址为1000,每个元素占2个存储单元,则a[3][4]的地址是____。
A.1040B.1026C.1046D.1038正确答案:A3、设有一个5行4列的矩阵A,采用行序优先存储方式,A[0][0]为第一个元素,其存储地址为1000,A[2][2]的地址为1040,则A[3][0]的地址为_________。
A.1048B.1024C.1096D.1060正确答案:A4、设有一个10行10列的矩阵A,采用行序优先存储方式,存储全部数据需要400个字节的空间。
如果A[0][0]为第一个元素,其存储地址为1000,则A[3][6]的地址为_________。
A.1036B.1144C.1014D.10565、设有一个10行10列的矩阵A,采用行序优先存储方式。
如果A[0][0]为第一个元素,其存储地址为1000,A[2][3]的存储地址为1069,则存储一个元素需要的单元数是_________。
A.4B.1C.2D.3正确答案:D6、不能够对数据元素进行随机访问的物理结构是_________。
A.三元组顺序表B.对称矩阵的压缩存储C.三对角矩阵的压缩存储D.数组的顺序存储正确答案:A7、对特殊矩阵采用压缩存储的目的主要是_________。
A.表达变得简单B.去掉矩阵中的多余元素C.对矩阵元素的存储变得简单D.减少不必要的存储空间正确答案:D8、对n*n的对称矩阵进行压缩存储,需要保存的数据元素的个数是_________。
A.nB.n(n+1)/2C.n2D.n(n+1)9、设10*10的对称矩阵下三角保存SA[1..55]中,其中A[1][1]保存在SA[1]中,A[5][3] 保存在SA[k]中,这里k等于_________。
数据结构第4章 数组和广义表

第4章数组和广义表【例4-1】二维数组A的每一个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。
若A以行为主序存储元素,A[8][5]的物理地址与当A按列为主序存储时的元素()的物理地址相同。
设每个字符占一个字节。
A.A[8][5] B.A[3][10] C.A[5][8] D.A[0][9]解:二维数A是一个9行10列的矩阵,即A[9][10]。
按行存储时,A[8][5]是第85个元素存储的元素。
而按列存储时,第85个存储的元素是A[3][10]。
即正确答案为B。
【例4-2】若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[n(n+1)/2]中,则在B中确定的位置k的关系为()。
A.jii+-2)1(*B.ijj+-2)1(*C.jii++2)1(*D.ijj++2)1(*解:如果a ij按行存储,那么它的前面有i-1行,其有元素个数为:1+2+3+…+(i-1)=i(i-1)/2。
同时它又是所在行的第j列,因此它排列的顺序还得加上j,一维数组B[n(n+1)/2]中的位置k与其下标的关系是:jii+-2)1(*。
因此答案为A。
【例4-3】已知n阶下三角矩阵A,按照压缩存储的思想,可以将其主对角线以下所有元素(包括主对角线上元素)依次存放于一维数组B中。
请写出从第一列开始以列序为主序分配方式时在B中确定元素a ij的存放位置的公式。
解:如果a ij按列存储,那么它的前面有j-1列,共有元素:n+(n-1)+(n-2)+ …+[n-(j-2)]=(j-1)*n-2)1)(2(--jj而它又是所在列的第i行,因此在它前的元素个数还得加上i。
因此它在一维数组B中的存储顺序为:(j-1)*n-2)1)(2(--jj+i【例4-4】已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出的原子项ASCII码最大的运算是()。
国开放大学数据结构(本科)单元5数组和广义表-单元测试题含答案

开放大学数据结构(本科)单元5数组和广义表单元测试题含答案试题1一维数组A采用顺序存储结构,每个元素占用4个字节,第8个元素的存储地址为120,则该数组的首地址是()。
选择一项:A.88B.92C.32D.90反馈正确答案是:92试题2稀疏矩阵采用压缩存储的目的主要是()。
选择一项:A.对矩阵元素的存取变得简单B.表达变得简单C.去掉矩阵中的多余元素D.减少不必要的存储空间的开销反馈正确答案是:减少不必要的存储空间的开销试题3一个非空广义表的表头()。
选择一项:A.只能是子表B.可以是子表或原子C.不可能是原子D.只能是原子反馈正确答案是:可以是子表或原子试题4常对数组进行的两种基本操作是()。
选择一项:A.索引与、和修改B.查找与索引C.查找和修改D.建立与删除反馈正确答案是:查找和修改试题5在二维数组A[8][10]中,每一个数组元素A[i][j] 占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是()。
选择一项:A.80B.270C.240D.100反馈正确答案是:240试题6设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A10,8在一维数组B 中的下标是()。
选择一项:A.18B.53C.45D.58反馈正确答案是:53试题7广义表((a))的表尾是()。
选择一项:A.((a))B.(a)C.0D.a反馈正确答案是:0试题8设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是()。
选择一项:A.32B.85C.41D.33反馈正确答案是:33试题9设广义表类((a,b,c)),则L的长度和深度分别为()。
选择一项:A.2和3B.1和2C.1和1D.1和3反馈正确答案是:1和2试题10广义表( a , a ,b , d , e ,( (i ,j ) ,k ) )的表头是________。
数据结构习题广义线性表-多维数组和广义表

第4 章广义线性表——多维数组和广义表课后习题讲解1. 填空⑴ 数组通常只有两种运算:()和(),这决定了数组通常采用()结构来实现存储。
【解答】存取,修改,顺序存储【分析】数组是一个具有固定格式和数量的数据集合,在数组上一般不能做插入、删除元素的操作。
除了初始化和销毁之外,在数组中通常只有存取和修改两种操作。
⑵ 二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A[10][5]的存储地址是1000,则元素A[15][10]的存储地址是()。
【解答】1140【分析】数组A中每行共有6个元素,元素A[15][10]的前面共存储了(15-10)×6+5个元素,每个元素占4个存储单元,所以,其存储地址是1000+140=1140。
⑶ 设有一个10阶的对称矩阵A采用压缩存储,A[0][0]为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A[8][5]的存储地址为()。
【解答】d+41【分析】元素A[8][5]的前面共存储了(1+2+…+8)+5=41个元素。
⑷ 稀疏矩阵一般压缩存储方法有两种,分别是()和()。
【解答】三元组顺序表,十字链表A 数组是一种线性结构B 数组是一种定长的线性结构C 除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等D 数组的基本操作有存取、修改、检索和排序等,没有插入与删除操【解答】C【分析】数组属于广义线性表,数组被创建以后,其维数和每维中的元素个数是确定的,所以,数组通常没有插入和删除操作。
⑷ 对特殊矩阵采用压缩存储的目的主要是为了()A 表达变得简单B 对矩阵元素的存取变得简单C 去掉矩阵中的多余元素D 减少不必要的存储空间【解答】D【分析】在特殊矩阵中,有很多值相同的元素并且他们的分布有规律,没有必要为值相同的元素重复存储。
⑸ 下面()不属于特殊矩阵。
A 对角矩阵B 三角矩阵C 稀疏矩阵D 对称矩阵【解答】C⑹ 若广义表A满足Head(A)=Tail(A),则A为()A ( )B (( ))C (( ),( )) D(( ),( ),( ))【解答】BA 广义表是一种多层次的结构B 广义表是一种非线性结构C 广义表是一种共享结构D 广义表是一种递归【解答】B【分析】从各层元素各自具有的线性关系讲,广义表属于线性结构。
第五章 数组和广义表

第五章数组和广义表一.选择题1.在二维数组A 中引用A[i,j]的时间_________。
A.与i、j的大小有关B.与i、j的大小无关C.与i的大小有关,与j的大小无关D.与i的大小无关,与j的大小有关2.在稀疏矩阵的带行指针向量的链接存储中,每一行单链表中的结点都具有相同的________。
A.行号 B.列号 C.元素值 D.地址3.二维数组A 按行顺序存储,其中每个元素占1个存储单元。
若 A[1][1]的存储地址为420, A[3][3]的存储地址为446,则A[5][5]的存储地址为_______。
A.470 B.471 C.472 D. 4734.在稀疏矩阵的十字链接存储中,每个列单链表中的结点都具有相同的_____。
A.行号 B.列号 C.元素值 D.地址5.下面的说法中,不正确的是________。
A.对称矩阵中只须存放包括主对角线元素在内的下(或上)三角部分的元素即可B.对角矩阵中只须存放的非零元素即可C.稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储D.稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储6.对一些特殊矩阵采用压缩存储的目的主要是为了________。
A.表达变得简单 B.对矩阵元素的存取变得简单C.去掉矩阵中的多余元素 D.减少不必要的存储空间的开销7.若将n 阶对称矩阵 A 按照行序为主序方式将包括主对角线元素在内的下三角形的所有元素依次存放在一个一维数组 B 中,则该对称矩阵在 B 中占用了________个数组元素。
A.n2 B.n*(n-1) C.n*(n+1)/2 D.n*(n-1)8. 稀疏矩阵的三元组顺序表表示的一个三元组中不包括________。
A. 行号B.列号C.元素值D.元素总数9.稀疏矩阵一般的压缩存储方法有两种,即________。
A.二维数组和三维数组 B.三元组和散列C. 三元组和十字链表 D.散列和十字链表10.有一个 10 阶对称矩阵 A,采用压缩存储方式(以行序为主存储,且A[0 Ⅱ0]=1),则A[8][5]的地址是________。
数据结构1800试题-第5章 数组和广义表 - 答案

第五章数组和广义表答案部分答案解释如下。
1. 错误。
对于完全二叉树,用一维数组作存储结构是效率高的(存储密度大)。
4. 错误。
数组是具有相同性质的数据元素的集合,数据元素不仅有值,还有下标。
因此,可以说数祖是元素值和下标构成的偶对的有穷集合。
5. 错误。
数组在维数和界偶确定后,其元素个数已经确定,不能进行插入和删除运算。
6. 错误。
稀疏矩阵转置后,除行列下标及行列数互换外,还必须确定该元素转置后在新三元组中的位置。
8. 错误。
广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表,不可能是原子。
9. 错误。
广义表的表头就是广义表的第一个元素。
只有非空广义表才能取表头。
10. 错误。
广义表中元素可以是原子,也可以是表(包括空表和非空表)。
11. 错误。
广义表的表尾,指去掉表头元素后,剩余元素所组成的表。
三、填空题1. 顺序存储结构2.(1)9572(2)12283.(1)9174(2)87884. 11005. 1164 公式:LOC(a ijk)=LOC(a000)+[v2*v3*(i-c1)+v3*(j-c2)+(k-c3)]*l (l为每个元素所占单元数)6. 2327. 13408. 11969. 第1行第3列10. (1)270 (2)27 (3)2204 11. i(i-1)/2+j (1<=i,j<=n)12. (1)n(n+1)/2 (2)i(i+1)/2 (或j(j+1)/2) (3)i(i-1)/2+j (4)j(j-1)/2+i (1<=i,j<=n)13. 1038 三对角矩阵按行存储:k=2(i-1)+j (1<=i,j<=n)14. 33 (k=i(i-1)/2+j) (1<=i,j<=n)15. 非零元很少(t<<m*n)且分布没有规律 16. 节省存储空间。
17. 上三角矩阵中,主对角线上第r(1≤r≤n) 行有n-r+1个元素,a ij所在行的元素数是j-i+1。
数据结构练习_第五章_数组和广义表

阵中下三角部分的元素存入一维数组B[ ]中,A[0][0]存入B[0]中,则
A[8][5]在B[ ]中( )位置。
A.32
B.33
C.41
D.65
12.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存
储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85
的地址为( 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.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不
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都不
对Leabharlann 16.稀疏矩阵一般的压缩存储方法有两种,即( C )。
9.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点
数据结构 数组与广义表练习

1.多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为( )A .数组的元素处在行和列两个关系中B .数组的元素必须从左到右顺序排列C .数组的元素之间存在次序关系D .数组是多维结构,内存是一维结构 2.从广义表LS =((p, q), r, s )中分解出原子q 的运算是( ) A .tail (head (LS))B .head (tail (head (LS)))C .head (tail (LS))D .tail (tail (head (LS)))3.二维数组A [12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A [9][7]的地址为( )A. 429B. 432C. 435D. 4384.二维数组A [10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A [0][0]的存储地址为300,则A [10][10]的地址为( )A.700B.1120C.1180D.11405.假设以行优先顺序存储三维数组R[6][9][6],其中元素R[0][0][0]的地址为2100,且每个元素占4个存储单元,则存储地址为2836的元素是( )A .R[3][3][3]B .R[3][3][4]C .R[4][3][5]D .R[4][3][4]6.二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为( )A .1207B .1209C .1211D .12137.对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )8.设有二维数组A [n ][n ]表示如下:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡ 653421, 则A [i ][i ](0≤i ≤n-1)的值为( )A .i*(i-1)/2B.i*(i+1)/2C.(i+2)*(i+1)/2D.i 2/2 9.对广义表L=((a,b),((c,d),(e,f)))执行head(tail(head(tail(L))))操作的结果是( )A .dB .eC .(e)D .(e,f )10.假设按行优先顺序将一个20阶的三对角矩阵A 压缩存储在一维数组Q 中,其中Q[0]存放矩阵的第1个元素a 1,1,那么矩阵元素a 3,4在Q 中的存储位置k=_______。
数据结构第五章数组和广义表练习及答案

一、选择题1、设二维数组A[0..m-1][0..n-1]按行优先顺序存储在内存中,每个元素a ij占d个字节,则元素a ij的地址为()A、LOC(a00)+(i*n+j)*dB、LOC(a00)+((i-1)*n+j-1)*dC、LOC(a00)+((j-1)*n+i-1)*dD、LOC(a00)+(j*n+i-1)*d2、已知二维数组A8*10中,元素a12的地址为1000,每个元素占2个字节,则元素a00的地址为()A、972B、974C、976D、9783、若数组A[0..m-1][0..n-1]按列优先顺序存储,则a ij地址为()A、LOC(a00)+j*m+iB、LOC(a00)+j*n+IC、LOC(a00)+(j-1)*n+i-1D、LOC(a00)+(j-1)*m+I-14、若下三角矩阵A n*n,按行顺序压缩存储在数组a[0..(n+1)n/2]中,则非零元素a ij的地址为()(设每个元素占d个字节)A、LOC(a00)+((j-1)j/2+i)*dB、LOC(a00)+((i+1)i/2+j)*dC、LOC(a00)+((i-1)i/2+i-1)*dD、LOC(a00)+((i-1)i/2+j-1)*d5、设有广义表D=(a,b,D),其长度为(B),深度为(A)A、∞B、3C、2D、56、广义表A=(a),则表尾为()A、aB、(())C、空表D、(a)7、广义表A=((x,(a,b)),((x,(a,b)),y)),则运算head(head(tail(A)))为()A、xB、(a,b)C、(x,(a,b))D、A8、数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址a开始连续存放在存储器内,存放该数组至少需要的单元数为()A、80B、100C、240D、2709、数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址a开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()A、a+141B、a+144C、a+222D、a+22510、稀疏矩阵一般的压缩存储方法有两种,即()A、二维数组和三维数组B、三元组和散列C、三元组和十字链表D、散列和十字链表11、一个广义表的表头总是一个()A、广义表B、元素C、空表D、元素或广义表12、数组就是矩阵,矩阵就是数组,这种说法()A、正确B、错误C、前一句对,后一句错D、后一句对二、填空题1、广义表LS=(),其长度为(0);深度为(0)。
计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编3

计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编3(总分:66.00,做题时间:90分钟)一、综合题(总题数:20,分数:48.00)1.数组A[1..8,一2..6,0..6]以行为主序存储,设第一个元素的首地址是78,每个元素的长度为4,试求元素A[4,2,3]的存储首地址。
【厦门大学1998五、1(5分)】__________________________________________________________________________________________ 正确答案:(正确答案:元素A[4,2,3]的存储首地址为958。
三维数组以行为主序存储,其元素地址公式为:LOC(A ijk )=LOC(A c1c2c3 )=(3A c1c2c3 )+[(i-c 1 )V 2 V 3 +(j—c 2 )V 3 +(k-c 3 )]*L其中,c i,d i 是各维的下界和上界,V i =d i一c i +1是各维元素个数,L是一个元素所占的存储单元数。
)2.数组A中,每个元素A[i,f]的长度均为32个二进位,行下标从一1到9,列下标从1到11,从首地址S开始连续存放在主存储器中,主存储器字长为16位。
求:(1)存放该数组所需多少单元?(2)存放数组第4列所有元素至少需多少单元?(3)数组按行存放时,元素A[7,4]的起始地址是多少?(4)数组按列存放时,元素A[4,7]的起始地址是多少?【大连海事大学1996四、1(6分)】__________________________________________________________________________________________ 正确答案:(正确答案:每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11。
(1)242 (2)22 (3)S+182 (4)S+142)3.假设按低下标优先存储整型数组A(一3:8,3:5,一4:0,0:7)时,第一个元素的字节存储地址是100,每个整数占4字节,问A(0,4,一2,5)的存储地址是什么? 【清华大学1996三】__________________________________________________________________________________________ 正确答案:(正确答案:1784 (公式:Loc(A ijkl )=100(基地址)+[(i-c 1 )v 2 v 3 v 4 +一c 2 )v 3 v 4 +(k-c3 )v4 +(l一c 4 )]*4))4.设有五对角矩阵A=(a ij ) 20*20,按特殊矩阵压缩存储的方式将其五条对角线上的元素存于数组A[-10:m]中,计算元素A[15,16]的存储位置。
完整word版数据结构数组和广义表习题及答案

习题五数组和广义表一、单项选择题1.常对数组进行的两种基本操作是()A.建立与删除B. 索引与修改C. 查找与修改D. 查找与索引2.对于C语言的二维数组DataType A[m][n],每个数据元素占K个存储单元,二维数组中任意元素a[i,j] 的存储位置可由( )式确定.A.Loc[i,j]=A[m,n]+[(n+1)*i+j]*kB.Loc[i,j]=loc[0,0]+[(m+n)*i+j]*kC.Loc[i,j]=loc[0,0]+[(n+1)*i+j]*kD.Loc[i,j]=[(n+1)*i+j]*k3.稀疏矩阵的压缩存储方法是只存储 ( )A.非零元素B. 三元祖(i,j, aij)C. aijD. i,j4. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
A. 1175B. 1180C. 1205D. 12105. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A. i(i-1)/2+jB. j(j-1)/2+iC. i(j-i)/2+1D. j(i-1)/2+16. 用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j 沿链移动的操作为( )。
A. j=r[j].nextB. j=j+1C. j=j->nextD. j=r[j]-> next7. 对稀疏矩阵进行压缩存储目的是()。
A.便于进行矩阵运算 B.便于输入和输出C.节省存储空间 D.降低运算的时间复杂度8. 已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。
A. head(tail(LS))B. tail(head(LS))C. head(tail(head(tail(LS)))D. head(tail(tail(head(LS))))9. 广义表((a,b,c,d))的表头是(),表尾是()。
计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编4

计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编4(总分:60.00,做题时间:90分钟)一、综合题(总题数:13,分数:26.00)1.简述广义表属于线性结构的理由。
【西北大学2000一、5(3分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:广义表是元素为原子或子表的有限序列,满足线性结构的特性:在非空线性结构中,只有一个称为“第一个”的元素,只有一个称为“最后一个”的元素,第一个元素有后继而没有前驱,最后一个元素有前驱而没有后继,其余每个元素有唯一前驱和唯一后继。
从这个意义上说,广义表属于线性结构,只是元素可以是原子,也可以是子表。
)解析:2.数组、广义表与线性表之间有什么样的关系?【西北工业大学1998一、2(4分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:数组是具有相同性质的数据元素的集合,同时每个元素又由唯一下标限定,可以说数组是值和下标偶对的有限集合。
n维数组中的每个元素,处于n个关系之中,每个关系都是线性的,且n 维数组可以看作其元素是n一1维数组的一个线性表。
而广义表与线性表的关系,见上面21题的解释。
) 解析:3.什么是广义表?请简述广义表和线性表的主要区别。
【北京大学1997二、2(5分)】(分数:2.00)__________________________________________________________________________________________ 正确答案:(正确答案:线性表中的元素可以是各种各样的,但必须具有相同性质,属于同一数据对象。
数据结构-数组和广义表作业解答

数组和广义表 作业4 单项选择题1.有一矩阵为A[-3:1,2:6],每个元素占一个存储单元,存储的首地址为100,以行序为主,则元素a -1,4的地址为( )。
A )111B )112C )113D )125【分析】对于二维数组A[c 1:d 1,c 2:d 2],设每个元素占用l 个存储单元,LOC(c 1,c 2)是第一个元素a c 1,c 2的存储位置,则按行存放时,a ij 的存储位置如下: LOC(i,j)=LOC(c 1,c 2)+[(d 2-c 2+1)(i-c 1)+(j-c 2)]l对于本题,c 1=-3,c 2=2,d 1=1,d 2=6,l =1,LOC(c 1,c 2)=100,所以元素a -1,4的地址为:LOC(-1,4)=100+[(6-2+1)*(-1-(-3))+(4-2)]*1=112。
【答案:B 】2.一n ×n 的三角矩阵A=[a ij ]如下:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡nn n n a a a a a a22211211 将三角矩阵中元素a ij (i ≤j)按行序为主序的顺序存储在一维数组B[1..n(n+1)/2]中,则a ij 在B 中的位置是( )。
A )(i-1)(2n+i)/2+i-j+1B )(i-1)(2n-i+2)/2+j-i+1C )(i-1)(2n-i)/2+j-iD )(i-1)(2n-i+2)/2+j-i 【分析】存储位置=n+(n-1)+…+(n -i+2)+i-j+1=(i-1)(2n-i+2)/2+j-i+1。
【答案:B 】3.广义表((a,b),(c,d))的表尾是( )。
(四川大学计算机学院2004年试题)A )(c,d)B )((c,d))C )(d)D )d【分析】广义表((a,b),(c,d))可看成是(d1,d2)所组成,其中d1=(a,b),d2=(c,d),所以表尾为(d2)=((c,d))。
【答案:B 】4.若广义表A 满足Head(A)==Tail(A),则A 为( )。
《数据结构》习题集:第5章_数组与广义表

第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+141B、SA+180C、SA+222D、SA+2254.数组SA 中,每个元素的长度为3 个字节,行下标I 从0 到7,列下标J 从0 到9,从首地址SA 开始连续存放在存储器内,存放该数组至少需要的字节数是( C )。
A、80B、100C、240D、2705.常对数组进行的两种基本操作是(B )。
A、建立与删除B、索引和修改C、查找和修改D、查找和索引6.将一个A[15][15]的下三角矩阵(第一个元素为A[0][0]),按行优先存入一维数组B[120]中,A 中元素A[6][5]在B 数组中的位置K 为( B )。
A、19B、26C、21D、157.若广义表A 满足Head(A)=Tail(A),则A 为(B )。
A、()B、(())C、((),())D、((),(),())8.广义表((a),a)的表头是( C ),表尾是(C )。
A、aB、bC、(a)D、((a))9.广义表((a,b),c,d)的表头是( C ),表尾是(D )。
A、aB、bC、(a,b)D、(c,d)10.广义表((a))的表头是( B ),表尾是(C )。
A、aB、(a)C、()D、((a))11.广义表(a,b,c,d)的表头是(A ),表尾是(D )。
A、aB、(a)C、(a,b)D、(b,c,d)12.广义表((a,b,c,d))的表头是(C ),表尾是(B )。
数据结构第五章数组和广义表

第五章数组和广义表:习题习题一、选择题1.假设以行序为主序存储二维数组A[1..100,1..100],设每个数据元素占两个存储单元,基地址为10,则LOC(A[5,5])=( )。
A. 808B. 818C. 1010D. 10202.同一数组中的元素( )。
A. 长度可以不同 B.不限 C.类型相同 D. 长度不限3.二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范圈从1到10。
从供选择的答案中选出应填入下列关于数组存储叙述中( )内的正确答案。
(1)存放A至少需要( )个字节。
(2)A的第8列和第5行共占( )个字节。
(3)若A按行存放,元素A[8]【5]的起始地址与A按列存放时的元素( )的起始地址一致。
供选择的答案:(1)A. 90 B. 180 C. 240 D. 270(2) A. 108 B. 114 C. 54 D. 60(3)[8][5] B. A[3][10] [5][8] [O][9]4.数组与一般线性表的区别主要是( )。
A.存储方面B.元素类型方面C.逻辑结构方面D.不能进行插入和删除运算5.设二维数组A[1..m,1..n]按行存储在数组B[1..m×n]中,则二维数组元素A[i,j]在一维数组B中的下标为( )。
A. (i-l)×n+jB. (i-l)×n+j-lC.i×(j-l) D. j×m+i-l6.所谓稀疏矩阵指的是( )。
A.零元素个数较多的矩阵B.零元素个数占矩阵元素中总个数一半的矩阵C.零元素个数远远多于非零元素个数且分布没有规律的矩阵D.包含有零元素的矩阵7.对稀疏矩阵进行压缩存储的目的是( )。
A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D. 降低运算的时间复杂度8.稀疏矩阵一般的压缩存储方法有两种,即( )。
A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表9.有一个100×90的稀疏矩阵,非0元素有10个,设每个整型数占两字节,则用三元组表示该矩阵时,所需的字节数是( )。
数据结构第05章 数组与广义表习题

第五章 数组和广义表一、选择题1、设广义表L=((a ,b ,c)),则L 的长度和深度分别为( )。
A. 1和1B. 1和3C. 1和2D. 2和32、广义表((a),a)的表尾是( )。
A. aB. (a)C. ()D. ((a))3、设有一个10阶的对称矩阵A ,采用压缩存储方式,以行序为主存储,a11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( )。
A. 13B. 33C. 18D. 404、一个非空广义表的表头( )。
A. 不可能是子表B. 只能是子表C. 只能是原子D. 可以是子表或原子5、设矩阵A 是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素ai,j(i>=j),在一维数组B 的下标位置k 的值是( )。
A. i(i-1)/2+j-1B. i(i-1)/2+jC. i(i+1)/2+j-1D. i(i+1)/2+j6、广义表G=(a,b(c,d,(e,f)),g)的长度是( )。
A. 3B. 4C. 7D. 87、采用稀疏矩阵的三元组表形式进行压缩存储,若要完成对三元组表进行转置,只要将行和列对换,这种说法( )。
A. 正确B. 错误C. 无法确定D. 以上均不对8、常对数组进行两种基本操作是( )。
A. 建立和删除B. 索引和修改C. 查找和修改D. 查找与索引9、对一些特殊矩阵采用压缩存储的目的主要是为了( )。
A. 表达变得简单B. 对矩阵元素的存取变得简单C. 去掉矩阵中的多余元素D. 减少不必要的存储空间的开销 10、假设以三元组表表示稀疏矩阵,则与如图所示三元组表对应的4×5的稀疏矩阵是(注:矩阵的行列下标均从1开始)( )。
A. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000000000706080 B. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00000004053000706080 C. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000073000006080D. ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00000304050000706080二、判断题1、广义表中原子个数即为广义表的长度。
第五章数组和广义表习题_数据结构范文

习题五数组和广义表一、单项选择题1.常对数组进行的两种基本操作是()A.建立与删除B. 索引与修改C. 查找与修改D. 查找与索引2.对于C语言的二维数组DataType A[m][n],每个数据元素占K个存储单元,二维数组中任意元素a[i,j] 的存储位置可由( )式确定.A.Loc[i,j]=A[m,n]+[(n+1)*i+j]*kB.Loc[i,j]=loc[0,0]+[(m+n)*i+j]*kC.Loc[i,j]=loc[0,0]+[(n+1)*i+j]*kD.Loc[i,j]=[(n+1)*i+j]*k3.稀疏矩阵的压缩存储方法是只存储 ( )A.非零元素B. 三元祖(i,j, aij)C. aijD. i,j4. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
A. 1175B. 1180C. 1205D. 12105. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A. i(i-1)/2+jB. j(j-1)/2+iC. i(j-i)/2+1D. j(i-1)/2+16. 用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j 沿链移动的操作为( )。
A. j=r[j].nextB. j=j+1C. j=j->nextD. j=r[j]-> next7. 对稀疏矩阵进行压缩存储目的是()。
A.便于进行矩阵运算 B.便于输入和输出C.节省存储空间 D.降低运算的时间复杂度8. 已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。
A. head(tail(LS))B. tail(head(LS))C. head(tail(head(tail(LS)))D. head(tail(tail(head(LS))))9. 广义表((a,b,c,d))的表头是(),表尾是()。
数据结构试卷3数组和广义表

数据结构试卷3数组和广义表题目部分,(卷面共有95题,608.0分,各大题标有题量和总分)一、单项选择题(22小题,共44.0分)(2分)[1]设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为A、13B、33C、18D、40(2分)[2]二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,,8,列下标j=1,2,,10。
若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素()的起始地址相同。
设每个字符占一个字节。
A、A[8,5]B、A[3,10]C、A[5,8]D、A[0,9](2分)[3]已知广义表:A=(a,b),B=(A,A),C=(a,(b,A),B),求下列运算的结果:tail(head(tail(C)))=A、(a)B、AC、aD、(b)E、bF、(A)(2分)[4]下面说法不正确的是A、广义表的表头总是一个广义表B、广义表的表尾总是一个广义表C、广义表难以用顺序存储结构D、广义表可以是一个多层次的结构(2分)[5]设广义表L=((a,b,c)),则L的长度和深度分别为A、1和1B、1和3C、1和2D、2和3(2分)[6]广义表((a,b,c,d))的表头是(),表尾是A、aB、bC、(a,b,c,d)D、(b,c,d)(2分)[7]广义表运算式Tail(((a,b),(c,d)))的操作结果是A、(c,d)B、c,dC、((c,d))D、d(2分)[8]已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS 中原子e的运算是A、head(tail(LS))B、tail(head(LS))C、head(tail(head(tail(LS)))D、head(tail(tail(head(LS))))(2分)[9]对稀疏矩阵进行压缩存储目的是A、便于进行矩阵运算B、便于输入和输出C、节省存储空间D、降低运算的时间复杂度(2分)[10]数组A[0..4,-1..-3,5..7]中含有元素的个数A、55B、45C、36D、16(2分)[11]设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m某n]中,则二维数组元素A[i,j]在一维数组B中的下标为A、(i-1)某n+jB、(i-1)某n+j-1C、i某(j-1)D、j某m+i-1(2分)[12]A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k 是A、i(i-1)/2+jB、j(j-1)/2+iC、i(j-i)/2+1D、j(i-1)/2+1(2分)[13]广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为Head(Tail(Head(Tail(Tail(A)))))A、(g)B、(d)C、cD、d(2分)[14]对于以行为主序的存储结构来说.在数组A[c1..d1,c2..d2]中,c1和d1分别为数组A的第一维下标的下、上界,c2和d2分别为第二维下标的下、上界.每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由()确定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
已知二维数组A[3][5],其每个元素占3个存储单元,并且A[0][0]的存储地址为1200。
求元素A[1][3]的存储地址(分别对以行序和列序为主序存储进行讨论),该数组共占用多少个存储单元?
【解答】按照以行序为主序存储公式:
LOC(i,j)=LOC(c1,c2)+[(i-c1)*(d2-c2+1)+(j-c2)]*L
在C语言中有:LOC(i,j)=LOC(0,0)+(i*(d2+1)+j)*L
则:
LOC(A[1][3])=1200+(1*5+3)*3=1224
(按行序存储)
LOC(A[1][3])=1200+(3*3+1)*3=1230
(按列序存储)
有一个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
设有一个二维数组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。
二维数组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列和第行共占(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]的起始地址一致。
什么是广义表?请简述广义表和线性表的主要区别。
【解答】广义表是零至多个元素的有限序列,广义表中的元素可以是原子,也可以是子表。
从“元素的有限序列”角度看,广义表满足线性结构的特性:在非空线性结构中,只有一个
称为“第一个”的元素,只有一个称为“最后一个”的元素,第一元素有后继而没有前驱,
最后一个元素有前驱而没有后继,其余每个元素有唯一前驱和唯一后继。
从这个意义上说,
广义表属于线性结构。
当广义表中的元素都是原子时,广义表就蜕变为线性表。
求广义表D=(a,(b,(),c),((d),e))的长度和深度。
【解答】3和3
设广义表L=((),()),试问GetHead(L),GetTail(L)的值,求L的长度和深度各为多少? 【解答】
GetHead(L)和GetTail(L)的值是()和(())。
L的长度和深度都是2。
求下列广义表运算的结果:
(1) GetHead ((p,h,w))
(2) GetTail((b,k,p,h))
(3) GetHead(GetTail(((a,b),(c,d))))
(4) GetTail(GetHead(((a,b),(c,d))))
【解答】
(1) GetHead ((p,h,w))=p
(2) GetTail((b,k,p,h))=(k,p,h)
(3) GetHead(GetTail(((a,b),(c,d)))= GetHead(((c,d)))=(c,d)
(4) GetTail(GetHead(((a,b),(c,d))))=GetTail((a,b))=(b)
选择题:对矩阵压缩存储是为了
A.方便运算
B.方便存储
C.提高运算速度
D.减少存储空间
【解答】D
选择题:下面说法不正确的是
A. 广义表的表头总是一个广义表
B. 广义表的表尾总是一个广义表
C.广义表难以用顺序存储结构
D.广义表可以是一个多层次的结构
【解答】A
利用广义表的GetHead和GetTail操作写出函数表达式,
把以下各题中的单元素banana从广义表中分离出来:
(1) (apple,pear,banana,orange)
(2) ((apple,pear),(banana,orange))
(3) ((((apple))),((pear)),(banana),orange)
(4) (apple,(pear,(banana),orange))
【解答】(1) GetHead(GetTail(GetTail((apple,pear,banana,orange))))
(2) GetHead(GetHead(GetTail((apple,pear),(banana,orange)))))
(3) GetHead(GetHead(GetTail(GetTail(((((apple))),((pear)),(banana),orange))))
(4)GetHead(GetHead(GetTail(GetHead(GetTail((apple,(pear,(banana),orange)))))))。