数据结构习题广义线性表-多维数组和广义表
数据结构(数组和广义表)习题与答案

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 章广义线性表——多维数组和广义表课后习题讲解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【分析】从各层元素各自具有的线性关系讲,广义表属于线性结构。
《数据结构》习题集:第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 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个,设每个整型数占两字节,则用三元组表示该矩阵时,所需的字节数是( )。
数据结构答案第4章

⑴二维数组A的每个元素是由6个字符组成的串,行下标的范围从0~8,列下标的范围是从0~9,则存放A至少需要()个字节,A的第8列和第5行共占()个字节,若A按行优先方式存储,元素A[8][5]的起始地址与当A按列优先方式存储时的()元素的起始地址一致。
A 90 B 180 C 240 D 540 E 108 F 114 G 54
⑵二维数组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。
Head(Tail(Tail(Head(ST))))=奖金
⑵工资表ST的头尾表示法如图4-7所示。7.若在矩阵A中存在一个元素ai,j(0≤i≤n-1,0≤j≤m-1),该元素是第i行元素中最小值且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。假设以二维数组存储矩阵A,试设计一个求该矩阵所有马鞍点的算法,并分析最坏情况下的时间复杂度。
⑵因为k和i, j之间是一一对应的关系,k+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=_______。
数据结构 习题 第五章 数组和广义表

第 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]的地址是( )。
完整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))的表头是(),表尾是()。
02331数据结构 04数组和广义表

02331数据结构 04数组和广义表02331数据结构-04数组和广义表第四章多维数组和广义表1.多维数组和广义表是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前驱和多个直接后继。
2.一维数组(矢量)是存储在计算机连续存储空间中的若干具有统一类型的数据元素。
同一数组的不同元素通过不同的下标标识。
(a1,a2,…,an)3.二维数组amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。
二维数组中的每个元素aij既属于第i行的行向量,又属于第j列的列向量。
4.多维数组:3D数组AMNP可以看作是一个以2D数组为数据元素的向量。
将三维阵列的四维向量作为视觉数据三维数组中的每个元素aijk都属于三个向量。
四维数组中的每个元素都属于四个向量……5.数组的顺序存储:由于计算机内存是一维的,因此多维数组的元素应按线性顺序排列并存储在内存中。
数组通常不执行插入和删除操作,也就是说,结构中的元素数量和元素之间的关系不会改变。
通常,顺序存储方法用于表示阵列。
(1)行优先级:按行向量排列数组元素,I+1行向量紧跟在第I行向量之后。
【示例】二维数组amn的行首存储的线性序列为:a11,A12,。
,A1N,A21,A22,。
,A2N,。
,AM1,AM2,。
,amn(2)列优先级将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。
【例】二维数组amn的按列优先存储的线性序列为:a11,a21,…,am1,a12,a22,…,am2,……,a1n,a2n,…,amn6.数组元素的地址计算公式:(1)按行优先级顺序存储的二维数组amn地址计算公式loc(aij)=loc(a11)+[(i-1)×n+j-1]×d(注:此公式下界为1,如下界为0,则公式变为[i×n+j])①loc(a11)是开始结点的存放地址(即基地址)②d为每个元素所占的存储单元数③ 根据地址计算公式,可以通过地址公式同时在内存中访问数组中的任何元素。
数据结构习题及答案与实验指导(数组和广义表)5

第5章数组和广义表本章所讨论的多维数组和广义表是对线性表的推广,其特点是数据元素仍可被视为一个表。
要求熟悉多维数组的逻辑结构、存储结构,广义表的逻辑结构、表示形式,以及矩阵的压缩存储的有关内容。
重点提示:●多维数组的存储方式和存取特点●特殊矩阵的存储●稀疏矩阵的存储●广义表的表示形式5-1 重点难点指导5-1-1 相关术语1.特殊矩阵要点:矩阵中非零元素或零元素的分布有一定规律的矩阵。
2.对称矩阵要点:一种特殊矩阵;n阶方阵的元素满足性质:a ij=a ji(0≤i,j≤n-1)。
3.三角矩阵要点:以主对角线划分,有上三角矩阵和下三角矩阵两种;主对角线以下,不包括主对角线中的元素,均为常数c,称为上三角矩阵;主对角线以上,不包括主对角线中的元素,均为常数c,称为下三角矩阵。
4.对角矩阵要点:非零元素集中在以主对角线为中心的带状区域中,也称带状矩阵。
5.稀疏矩阵要点:矩阵中非零元素的个数远小于矩阵元素总数的矩阵。
6.三元组表要点:是稀疏矩阵的一种存储结构;将稀疏矩阵的非零元素的三元组(行、列和值)按行优先的顺序排列;得到结点均是三元组的线性表。
7.广义表要点:是线性表的推广;是n个元素a1,a2,…,a n的有限序列;其中a i或者是原子或者是广义表;通常记为LS=(a1,a2,…,a n),LS为广义表的名字。
5-1-2 多维数组1.对n维数组逻辑结构的理解n维数组可视为由n-1维数组为元素的线性结构。
举例:一个m行n列的二维数组可视为由m个一维数组为元素组成的线性结构,其中每个一维数组又由n 个单元素组成。
]a ,,a ,[a A A A A a a a a a a a a a Amn in i2i1i m 21mnv m2m12n 22211n 1211 =⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎭⎫⎝⎛=其中2.数组的顺序存储方式(1)行优先顺序——将数组元素按行向量排列,即第i +1行紧接在第i 行后面。
数据结构答案-第6章-多维数组和广义表学习指导

数据结构答案-第6章-多维数组和广义表学习指导本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March第6章多维数组和广义表知识点分析1.多维数组概念多维数组是向量的推广,对于二维数组A m×n既可以看成m行向量组成的向量,也可以看成n行向量组成的向量。
多维数组在计算机中有两种存储形式:按行优先顺序存储和按列优先顺序存储。
2.多维数组的存储二维数组a ij的地址为:LOC(a ij) = LOC(a00) + ( i×n + j ) × d (0下标起始的语言)三维数组a ijk的地址为:LOC(a ijk)=LOC(a000)+( (i×n×p+ j×p +k) ×d (0下标起始的语言)d为每个数据元素占有的字节数。
3.特殊矩阵在矩阵中非零元素或零元素的分布有一定规律的矩阵称为特殊矩阵,如三角矩阵、对称矩阵、稀疏矩阵等。
当矩阵的阶数很大时,用普通的二维数组存储这些特殊矩阵将会占用很多的存储单元。
从节约存储空间的角度考虑,以下特殊矩阵的存储方法。
(1)对称矩阵对称矩阵是一种特殊矩阵,n阶方阵的元素满足性质:a ij=a ji(0≤i , j≤n-1)。
对称矩阵是关于主对角线的对称,因此只需存储上三角或下三角部分的数据即可。
(2)三角矩阵三角矩阵的特殊性是以主对角线划分矩阵。
下三角矩阵,主对角线以上均为同一个常数;上三角矩阵,主对角线以下均为同一个常数,可以采用压缩存储。
(3)稀疏矩阵在m*n的矩阵中有t个非零元素,且t远小于m×n,这样的矩阵称稀疏矩阵。
为了节约存储空间,稀疏矩阵中零元素无需存储,只需存储矩阵中的非零元素。
稀疏矩阵常用的有:三元组表存储、带行指针的链表存储、十字链表存储等存储方法。
4.广义表广义表是n(n≥0)个数据元素的有序序列,广义表的元素可以是单元素,也可以是一个广义表。
数据结构练习试题和答案解析

第1章绪论一、判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。
(√)2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。
(√)3.数据元素是数据的最小单位。
(×)4.数据的逻辑结构和数据的存储结构是相同的。
(×)5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。
(×)6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
(√)7.数据的存储结构是数据的逻辑结构的存储映象。
(√)8.数据的物理结构是指数据在计算机内实际的存储形式。
(√)9.数据的逻辑结构是依赖于计算机的。
(×)10.算法是对解题方法和步骤的描述。
(√)二、填空题1.数据有逻辑结构和存储结构两种结构。
2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。
3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。
4.树形结构和图形结构合称为非线性结构。
5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。
6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。
7.数据的存储结构又叫物理结构。
8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。
9.线性结构中的元素之间存在一对一的关系。
10.树形结构中的元素之间存在一对多的关系。
11.图形结构的元素之间存在多对多的关系。
12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算) 3个方面的内容。
13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。
14.算法是一个有穷指令的集合。
15.算法效率的度量可以分为事先估算法和事后统计法。
16.一个算法的时间复杂度是算法输入规模的函数。
17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。
18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O( nlog2n)。
数据结构 第4章 多维数组及广义表 答案

4 多维数组及广义表4.1回答下列概念:三元组表、广义表、十字链表三元组表:稀疏矩阵中的非零元素三元组组成的线性表。
广义表:也称为列表(Lists)是n(n≥0)个元素a1,a2,…,a i,…,a n的有限序列,元素a i可以是原子或者是子表(子表亦是广义表)。
十字链表:稀疏矩阵(即三元组表)的一种链接存储结构。
稀疏矩阵中每个非零元素都用一个包含五个域的结点来表示,存储非零元素所在行的行号域i,存储非零元素所在列的列号域j,存储非零元素值的值域v,以及行指针域right和列指针域down,分别指向同一行中的下一个非零元素结点和同一列中的下一个非零元素结点。
4.2二维数组在采用顺序存储时,元素的排列方式有哪两种?行优先和列优先。
4.3 矩阵压缩存储的目的是什么?请写出对称阵压缩存储四种方式的地址公式。
压缩存储的目的:节省矩阵的存储空间。
将对称矩阵的下(上)三角存储在数组长度为n(n+1)/2的数组sa中,设矩阵中的某一个元素a ij在数组中的下标为k,则对称阵压缩存储四种方式下k的计算公式如下:(1)行优先顺序存储下三角i(i+1)/2+j i≥j (下三角)k=j(j+1)/2+i i<j(上三角)(2)列优先顺序存储下三角j(2n-j+1)/2+i-j i≥j (下三角)k=i(2n-i+1)/2+j-i i<j (上三角)(3)行优先顺序存储上三角i(2n-i+1)/2+j-i i≤j (上三角)k=j(2n-j+1)/2+i-j i>j (下三角)(4)列优先顺序存储上三角j(j+1)/2+i i≤j (上三角)k=i(i+1)/2+j i>j (下三角)4.4 在特殊矩阵和稀疏矩阵中,哪一种经过压缩存储后会失去随机存取的特性?稀疏矩阵。
4.5 设有一个10阶的对称矩阵A,以行优先顺序存储下三角元素,其中a00为第一元素,其存储地址为1,每个元素占一个字节,则a 85的地址为多少?若a 11为第一元素,那么a 85的地址又会是多少?若a 00为第一元素,则a 85的地址为:41 若a 11为第一元素,则a 85的地址为:324.6 请给出图4.10中稀疏矩阵A 6×7的三元组顺序表和十字链表存储结构图示。
数据结构第4章 广义线性表(数组与广义表

设一维数组的下标的范围为闭区间[ , ] 设一维数组的下标的范围为闭区间 [ l,h], 每个 个存储单元, 任一元素 数组元素占用 c 个存储单元 , 则 其 任一元 素 ai 的 存储地址可由下式确定: 存储地址可由下式确定: Loc(a )=Loc(a )+(i- )× Loc( i)=Loc( l)+( -l)×c
)
矩阵的压缩存储
特殊矩阵的压缩存储——对称矩阵 对称矩阵 特殊矩阵的压缩存储
A= =
3 6 4 7 8
6 2 8 4 2
4 8 1 6 9
7 4 6 0 5
8 2 9 5 7
对称矩阵特点: 对称矩阵特点:aij=aji
如何压缩存储? 如何压缩存储? 只存储下三角部分的元素。 只存储下三角部分的元素。
A=
二维数组是数据元素为线性表的线性表。 二维数组是数据元素为线性表的线性表。
)
广义线性表——多维数组 广义线性表——多维数组 ——
数组的基本操作
在数组中插入( 在数组中插入(或)一个元素有意义吗? 一个元素有意义吗?
将元素 x 插入 到数组中第1行第 行第2列 到数组中第 行第 列。 删除数组中 行第2列元素 第1行第 列元素。 行第 列元素。
)
多维数组
数组的定义
数组是由一组类型相同的数据元素构成的有序集 数组是由一组类型相同的数据元素构成的有序集 类型相同的数据元素构成的有序 每个数据元素称为一个数组元素( 合,每个数据元素称为一个数组元素(简称为元 ),每个元素受 每个元素受n(n≥ 个线性关系的约束 的约束, 素),每个元素受 ≥1)个线性关系的约束,每 个元素在n个线性关系中的序号 1、i2、…、in称为 个元素在 个线性关系中的序号i 、 个线性关系中的序号 该元素的下标, 维数组。 该元素的下标,并称该数组为 n 维数组。
数据结构第五章数组和广义表

第五章数组和广义表:习题习题一、选择题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]的地址是。
数据结构第五章数组和广义表练习及答案

数据结构第五章数组和广义表练习及答案一、选择题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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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(( ),( ),( ))
【解答】B
A 广义表是一种多层次的结构
B 广义表是一种非线性结构
C 广义表是一种共享结构
D 广义表是一种递归
【解答】B
【分析】从各层元素各自具有的线性关系讲,广义表属于线性结构。
⑻ 下面的说法中,不正确的是()
A 对称矩阵只须存放包括主对角线元素在内的下(或上)三角的元素即可。
B 对角矩阵只须存放非零元素即可。
C 稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储。
D 稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储【解答】D
【分析】稀疏矩阵中大量值为零的元素分布没有规律,因此采用三元组表存储。
如果零元素的分布有规律,就没有必要存储非零元素的行号和列号,而需要按其压缩规律找出相应的映象函数。
3. 判断题
⑴ 数组是一种复杂的数据结构,数组元素之间的关系既不是线性的,也不是树形的。
【解答】错。
例如二维数组可以看成是数据元素为线性表的线性表。
⑵ 使用三元组表存储稀疏矩阵的元素,有时并不能节省存储空间。
【解答】对。
因为三元组表除了存储非零元素值外,还需要存储其行号和列号。