数组和广义表习题
数据结构(数组和广义表)习题与答案
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等于_________。
数组和广义表习题
一、填空题1.通常采用___________存储结构来存放数组。
对二维数组可有两种存储方法:一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。
2. 用一维数组B与列优先存放带状矩阵A中的非零元素A[i,j] (1≤i≤n,i-2≤j≤i+2),B 中的第8个元素是A 中的第_ _行,第_ _列的元素。
3.设n行n列的下三角矩阵A已压缩到一维数组B[1..n*(n+1)/2]中,若按行为主序存储,则A[i,j]对应的B中存储位置为_______。
4. 所谓稀疏矩阵指的是_ 。
5. 广义表简称表,是由零个或多个原子或子表组成的有限序列,原子与表的差别仅在于____ 。
为了区分原子和表,一般用 ____表示表,用 _____表示原子。
一个表的长度是指 __,而表的深度是指__ __6、设数组a[1..50,1..80]的基地址为2000,每个元素占2个存储单元,若一行序为主序顺序存储,则元素a[45,68]的存储地址为;若以列序为主序存储,则元素a[45,68]的存储地址为。
7、有一个8ⅹ8的下三角矩阵A,若采用行序为主序顺序存储于一维数组a[1..n],则n的值为。
8、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的、和。
9、已知广义表A=(((a))),则A的表头为:,A的表尾为:。
10、求下列广义表操作的结果:(1)Head ((a,b),(c,d)) == ; //头元素不必加括号(2)Head(Tail((a,b),(c,d)))== ;(3)Head(Tail(Head((a,b),(c,d))))== ;(4)Tail(Head(Tail((a,b),(c,d))))== ;11、设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W的数据元素共占用_______个字节。
第五章 数组和广义表
第五章数组和广义表一.选择题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]的地址是________。
数据结构第五章数组和广义表
第五章数组和广义表:习题习题一、选择题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 E.540(2) A. 108 B. 114 C. 54 D. 60 E.150(3)A.A[8][5] B. A[3][10] c.A[5][8] D.A[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个,设每个整型数占两字节,则用三元组表示该矩阵时,所需的字节数是( )。
数据结构-5 数组与广义表
第五章数组与广义表一.单项选择题1.在以下的叙述中,正确的是。
A. 线性表的线性存储结构优于链表存储结构B. 二维数组是数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式是先进后出2.常对数组进行的两种操作是。
A. 建立与删除B. 索引和修改C. 查找和修改D. 查找与索引3.在数组A中,每个数组元素A[i,j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放在一个连续的存储空间,则存放该数组至少需要的存储字数是。
A. 80B. 100C. 240D. 2704.假设8行10列的二维数组a[1..8, 1..10]分别以行序为主序和以列序为主序顺序存储时,其首地址相同,那么以行序为主序时元素a[3][5]的地址与以列序为主序时元素 _______的地址相同。
A. a[5][3]B. a[8][3]C. a[1][4]D. 答案A、B、C均不对5.如果只保存一个n阶对称矩阵a的下三角元素(含对角线元素),并采用行主序存储在一维数组b中,a[i][j](或a[i,j])存于b[k],则对i<j,下标k与i、j的关系是_____。
A. B. C. D.6.将一个A[1..100,1..100]的三对角矩阵以行序为主序存入一维数组B[1..298]中,元素A[66,65]在B数组中的位置k等于_______。
A. 198B. 197C. 196D. 1957.稀疏矩阵一般的压缩存储方法有两种,即。
A. 二维数组和三维数组B. 三元组和散列C. 三元组和十字链表D. 散列和十字链表8. 一个非空广义表的表头_______。
A. 不可能是子表B. 只能是子表C. 只能是原子D. 可以是原子或子表9. 对广义表,通常采用的存储结构是______。
A. 数组B. 链表C. Hash表D. 三元组10. 一个三元组表用于表示一个_______。
A. 线性表B. 广义表C. 双向链表D. 稀疏矩阵11.广义表G=(a,b,(c,d,(e,f)),G)的长度是。
数据结构练习_第五章_数组和广义表
阵中下三角部分的元素存入一维数组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.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点
数据结构 习题 第五章 数组和广义表
第 5 章数组和广义表一、选择题1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
【燕山大学 2001 一、2 (2分)】A. 13B. 33C. 18D. 402. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。
假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是(②)。
若按行存储,则A[2,4]的第一个字节的地址是(③)。
若按列存储,则A[5,7]的第一个字节的地址是(④)。
就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。
供选择的答案:【上海海运学院 1998 二、2 (5分)】①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120G. 156 H. 234 I. 276 J. 282 K. 283 L. 288⑤: A.行与列的上界相同 B. 行与列的下界相同C. 行与列的上、下界都相同D. 行的元素个数与列的元素个数相同3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。
A. BA+141B. BA+180C. BA+222D. BA+225【南京理工大学 1997 一、8 (2分)】4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
【福州大学 1998 一、10 (2分)】A. 808B. 818C. 1010D. 10205. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
数据结构第五章数组和广义表练习及答案
一、选择题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)。
习题5 数组和广义表
习题5 数组和广义表5.1 单项选择题1. 常对数组进行的两种基本操作是____。
A. 建立与删除B. 索引和修改C. 对数据元素的存取和修改D. 查找与索引2. 二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标i的范围从0到8,列下标j的范围从0到9,则存放M 至少需要①_ _个字节;M 数组的第8列和第5行共占②____个字节。
①A. 90 B. 180 C. 240 D. 540②A. 108 B. 114 C. 54 D. 603. 二维数组A中,每个元素的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,存放该数组至少需要的字节数是____。
A. 80B. 100C.240D. 2704. 二维数组A中,每个元素A的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按行存放时,数组元素A[7][4]的起始地址为____。
A. SA+141B. SA+144C. SA+222D. SA+2255. 二维数组A中,每个元素A的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为____。
A. SA+141B. SA+180C. SA+222D. SA+2255.2 填空题(将正确的答案填在相应的空中)1. 已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是_______。
2. 二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元并且A[0][0]的存储地址是200,则A[6][12]的地址是____。
3. 二维数组A[10..20][5..10]采用行序为主方式存储,每个元素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是____。
第五章数组和广义表
第五章数组和广义表一、单项选择题1.一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是()。
A.64 B.28C.70 D.902.稀疏矩阵采用压缩存储的目的主要是()。
A.表达变得简单B.对矩阵元素的存取变得简单C.去掉矩阵中的多余元素D.减少不必要的存储空间的开销3.一个非空广义表的表头()。
A.不可能是原子B.只能是子表C.只能是原子D.可以是子表或原子4.常对数组进行的两种基本操作是()。
A.建立与删除B.索引与修改C.查找和修改D.查找与索引5. 设二维数组A[5][6]按行优先顺序存储在内存中,已知A[0][0] 起始地址为1000,每个数组元素占用5个存储单元,则元素A[4][4]的地址为()。
A.1140 B.1145 C.1120 D.11256.设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a9,2在一维数组B中的下标是()。
A.41 B.32 C.18 D.387.稀疏矩阵的压缩存储方式通常有两种,即()。
A.二元组和三元组B.三元组和散列C.三元组和十字链表D.散列和十字链表8.广义表(a,(a,b),d,e,((I,j),k))的长度和深度分别是()。
A.5,3 B.5,5 C.6,4 D.6,69.广义表((a),a)的表头是()。
A.a B.(a)C.()D.((a))10.二维数组A[20][10]采用行序为主序方式存储,每个数据元素占4个存储单元,且A[10][5]的存储地址是1000,则A[18][9]的存储地址是()。
A.1208 B.1212 C.1368 D.133611.二维数组A中,每个数据元素占4个字节,行下标从0到4,列下标从0到5,按行优先存储时元素A[3][5]的地址域同按列优先存储时元素()的地址相同。
A.A[2][4] B.A[3][4] C.A[3][5] D.A[4][4]二、问答题1、简述广义表和线性表的区别与联系。
第5章数组和广义表
第五章习题参考答案一、简答题1.【参考答案】:数组是一组具有相同数据类型的数据集合。
数据元素按次序存储于一段地址连续的内存空间中。
可以通过下标找到存放该元素的存储地址,访问该数据元素的值。
数组中的每一个元素和下标惟一对应。
访问数组中任意指定的数据元素形式是,数组名[下标]。
举例略。
2.【参考答案】:数组是一组具有相同数据类型的数据集合。
数据元素按次序存储于一段地址连续的内存空间中。
即数组是数据元素的线性组合,类似于顺序存储结构的线性表。
3.【参考答案】:在n阶方阵A中,若元素满足下述性质:aij=aji (0≤i,j≤n-1)则称A为n阶对称矩阵。
三角矩阵是指n阶矩阵中上三角(不包括对角线)或下三角(不包括对角线)中的元素均为常数c或为0的n阶方阵。
以主对角线划分,三角矩阵有上三角和下三角两种。
在n阶矩阵A中,所有的非零元素都集中在以对角线为中心的带状区域中,则称A为n阶对角矩阵。
实质上,除了主对角线和主对角线相邻两侧的若干条对角线上的元素之外,其余元素均为零或为常数c。
稀疏矩阵压缩存储方法有两类:顺序存储结构和链式存储结构。
共同点:为了节省存储单元,可只存储非零元素,压缩零元素的存储空间;非零元素的分布一般是没有规律的;在存储非零元素的同时,还必须存储非零元素所在的行号、列号,才能惟一确定非零元素是矩阵中的哪一个元素。
稀疏矩阵中的所有非零元素构成了三元组线性表。
4.【参考答案】:一个阶数较大的m×n矩阵中,设有s个非零元素,如果s<<m×n时,则称该矩阵为稀疏矩阵。
准确的讲,在矩阵A中,有s个非零元素。
令e=s/(m×n),称e 为矩阵的稀疏因子。
通常认为e≤0.05时,称矩阵A为稀疏矩阵。
特点:非零元素分布没有规律,而且很少,远小于矩阵中的元素总个数。
采用压缩存储,节省存储空间,只存储非零元素,并且每个非零元素都需要一个三元组(i,j,aij)惟一表示。
数据结构第五章数组和广义表
第五章数组和广义表:习题习题一、选择题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.已知广义表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.若广义表A满足head(A)= tail(A),则A为。
A.()B.(())C.((),())D.((),(),())3.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子Head(Tail(Head(Tail(Tail(A)))))的值为。
A.()B.(d)C.cD.d4.稀疏矩阵一般的压缩存储方法有 两种。
A.二维数组和三维数组B.三元组和散列表C.三元组和十字链表D.散列表和十字链表5.已知矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行优先存放在一维数组B[1…n(n-1)/2]中,对下三角部分中任一元素aij(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.已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子u的运算是。
A.head(tail(tail(L)))B.tail(head(head(tail(L))))C.head(tail(head(tail(L))))D.head(head(tail(tail(L))))7.广义表L=((a,b,c)),则L的长度和深度分别为。
A.1和1B.1和3C.1和2D.2和38. tail (head(((a,b,c,d,e))))= 。
A.aB.c,dC.D.(b,c,d,e)9.二维数组A[10…20,5…10]采用列序方式存储,每个数据元素占4个存储单元,且A[10,5]的存储地址是1000,则A[20,9]的地址是。
第5章 数组和广义表
第五章数组和广义表一、单项选择题*1.对矩阵压缩存储是为了______。
A. 方便运算B. 节省空间C. 方便存储D. 提高运算速度*2.数组A[0..5, 0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内在单元中,则元素A[5][5]的地址为_______。
A. 1175B. 1180C.1205D. 12101.数据A中,每个元素A[i, j]的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器中,该数组掃行存放时,元素A[8, 5]起始地址为_____。
A.SA+141B. SA+144C. SA+222D. SA+225二、填空题*1.一维数组的逻辑结构是_______,存储结构是_______;对于二维或多维数组,分为按______和_______两种不同的存储方式。
线性结构顺序结构按行优先顺序按列优先顺序*2.已知广义表LS=((,x,y,z),(b,c)),运用head和tail函数取出原子c的运算是__________________________。
Head(tail(head(tail(LS))))1.数组A[1..10, -2..6, 2..8]以行优先顺序存储,设第一个元素的首址为100,每个元素占3个单元的存储空间,则元素A[5,0,7]的存储地址为_______。
9132.三维数据R[c1..d1,c2..d2, c3..d3]共含有______个元素。
(d1-c1+1)*(d2-c2+1)*(d3-c3+1)3.已知广义表L=(a,(b,c,d),c),运用head和tail函数取出原子b的运算是______________。
Head(head(tail(LS)))三、多项选择题1.广义表(a, b, c, d )的表头是______,表尾是______。
A. AB. (a, b )C. (d)D. (b, c, d)2. 广义表((a, b, c, d ))的表头是______,表尾是______。
第五章数组和广义表习题_数据结构范文
习题五数组和广义表一、单项选择题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))的表头是(),表尾是()。
第五章 数组和广义表练习题
第五章数组和广义表练习题一选择题1.假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为()。
(无第0行第0列元素)A、16902 B、16904 C、14454 D、答案A, B, C均不对2.二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[0][5]的起始地址与M按列存储时元素( ) 的起始地址相同。
A. M[2][4]B. M[3][4]C. M[4][5]D. M[4][0]3. 稀疏矩阵一般的压缩存储方法有两种,即()。
A 二维数组和三维数组 B.三元组和散列 C.三元组和十字链表D.散列和十字链表4. 一个n阶对称矩阵,如果以行或列为主序放入内存,则容量为_______A. n*nB. n**/2C. (n+1)*(n+1)/2D. n*(n+1)/25、广义表((a),(a))的表头是______,表尾是______A. aB. (a)C. ((a))D. ()6. 设矩阵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+j答案(隐藏中)A 【按列优先顺序存储的二维数组Amn地址计算公式LOC(aij)=LOC(a11)+[(j-1)×m+i-1]×dD C D CB D二填空题1、设有二维数组A(m*n),其中每个元素占w个存储单元,第一个元素a[1][1]的起始地址为L,则以列主序方式存储a[i][j]的存储单元地址是__________.2、在C语言中有定义,float b[5][7];设其首地址是1900,则元素b[3][5]•的存储地址是________.3、假设一个10阶的下三角矩阵A 按列优顺序压缩存储在一维数组C 中,则C 数组的大小应为________。
数据结构 数组与广义表练习
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题1.通常采用___________存储结构来存放数组。
对二维数组可有两种存储方法:一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。
2. 用一维数组B与列优先存放带状矩阵A中的非零元素A[i,j] (1≤i≤n,i-2≤j≤i+2),B 中的第8个元素是A 中的第_ _行,第_ _列的元素。
3.设n行n列的下三角矩阵A已压缩到一维数组B[1..n*(n+1)/2]中,若按行为主序存储,则A[i,j]对应的B中存储位置为_______。
4. 所谓稀疏矩阵指的是_ 。
5. 广义表简称表,是由零个或多个原子或子表组成的有限序列,原子与表的差别仅在于____ 。
为了区分原子和表,一般用 ____表示表,用 _____表示原子。
一个表的长度是指 __,而表的深度是指__ __6、设数组a[1..50,1..80]的基地址为2000,每个元素占2个存储单元,若一行序为主序顺序存储,则元素a[45,68]的存储地址为;若以列序为主序存储,则元素a[45,68]的存储地址为。
7、有一个8ⅹ8的下三角矩阵A,若采用行序为主序顺序存储于一维数组a[1..n],则n的值为。
8、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的、和。
9、已知广义表A=(((a))),则A的表头为:,A的表尾为:。
10、求下列广义表操作的结果:(1)Head ((a,b),(c,d)) == ; //头元素不必加括号(2)Head(Tail((a,b),(c,d)))== ;(3)Head(Tail(Head((a,b),(c,d))))== ;(4)Tail(Head(Tail((a,b),(c,d))))== ;11、设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W的数据元素共占用_______个字节。
W中第6 行的元素和第4 列的元素共占用_________个字节。
若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6,3]的起始地址为__________。
12、广义表A= (a,(a,b),((a,b),c)),则它的深度为____________,它的长度为____________。
13、设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有_______个数据元素。
14、广义表的深度是__表展开后所含括号的层数 ____二、选择题1、一个nⅹn的对称矩阵,如果以行或列为主序放入内存,则其容量为( )。
A、n*nB、n*n/2C、(n+1)*n/2D、(n+1)*(n+1)/22、对数组经常进行的两种基本操作是( ) 。
A、建立与删除B、索引与修改C、查找与修改D、查找与索引3、二维数组A[10..20,5..10]采用行序为主序方式存储,每个数据元素占4个存储单元,且A[10,5]的存储地址是1000,则A[18,9]的地址是( ) 。
A、1208B、1212C、1368D、13644、对于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]*k5、稀疏矩阵的压缩存储方法是只存储( )A.非零元素B. 三元祖(i,j, aij)C. aijD. i,j6、数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
A. 1175B. 1180C. 1205D. 12107、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+18、现有广义表Ls=(a,(a,b),d,e,((i,j,()),k)),则该广义表的长度是( )。
A.4B.5C.8D.99、现有广义表Ls=(a,(a,b),d,e,((i,j,()),k)),则该广义表的深度是( )。
A.2B.3C.4D.510、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j 沿链移动的操作为( )。
A. j=r[j].nextB. j=j+1C. j=j->nextD. j=r[j]-> next11、对稀疏矩阵进行压缩存储目的是()。
A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D.降低运算的时间复杂度12、已知广义表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))))13、广义表((a,b,c,d))的表头是(),表尾是()。
A. aB.()C.(a,b,c,d)D.(b,c,d)14、设广义表L=((a,b,c)),则L的长度和深度分别为()。
A. 1和1B. 1和3C. 1和2D. 2和315、设有一个二维数组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.69616、设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为( )。
A.i(i-l)/2+jB. j(j-l)/2+iC. j(j-l)/2+i-1D. i(i-l)/2+j-117、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+118、下面说法不正确的是( )。
A. 广义表的表头总是一个广义表B. 广义表的表尾总是一个广义表C. 广义表难以用顺序存储结构D. 广义表可以是一个多层次的结构19、将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为()。
供选择的答案:A.198B. 195C. 19720、二维数组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 E. 540(2)A. 108 B. 114 C. 54 D. 60 E. 150(3)A. A[8,5] B. A[3,10] C. A[5,8] D. A[0,9]21、设二维数组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-122、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()。
A.60B. 66C. 18000D. 3323、数组A[0..4,-1..-3,5..7]中含有元素的个数()。
A.55B. 45C. 36D. 1624、广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。
Head(Tail(Head(Tail(Tail(A)))))A.(g)B. (d)C. cD. d25、已知广义表: A=(a,b), B=(A,A), C=(a,(b,A),B),求下列运算的结果:tail(head(tail(C))) =( )。
A.(a)B. AC. aD. (b)E. bF. (A)26、广义表运算式Tail(((a,b),(c,d)))的操作结果是()。
A.(c,d)B. c,dC. ((c,d))D. d27 、广义表L=(a,(b,c)),进行Tail(L)操作后的结果为()。
A. cB. b,cC.(b,c)D.((b,c))28、广义表((a,b,c,d))的表头是(),表尾是()。
A. aB.()C.(a,b,c,d)D.(b,c,d)三、判断题1.数组不适合作为任何二叉树的存储结构。
()2. 从逻辑结构上看,n维数组的每个元素均属于n个向量。
()3. 稀疏矩阵压缩存储后,必会失去随机存取功能。
()4. 数组是同类型值的集合。
()5. 数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。
()6. 一个稀疏矩阵Am*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,则就完成了Am*n的转置运算。
()7. 二维以上的数组其实是一种特殊的广义表。
()8. 广义表的取表尾运算,其结果通常是个表,但有时也可是个单元素值。
()9. 若一个广义表的表头为空表,则此广义表亦为空表。
()10. 广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。
()11. 所谓取广义表的表尾就是返回广义表中最后一个元素。
()12. 广义表的同级元素(直属于同一个表中的各元素)具有线性关系。
()13. 对长度为无穷大的广义表,由于存储空间的限制,不能在计算机中实现。
()14. 一个广义表可以为其它广义表所共享。
()15.一个广义表的表尾总是一个广义表。
( )四、应用题1.数组A[1..8,-2..6,0..6]以行为主序存储,设第一个元素的首地址是78,每个元素的长度为4,试求元素A[4,2,3]的存储首地址。