数据结构复习题第5章答案2014616
- 格式:doc
- 大小:35.50 KB
- 文档页数:4
《数据结构-C语言版》第一章绪论单项选择题1.在数据结构中,数据的基本单位是_____ ____。
A. 数据项B. 数据类型C. 数据元素D. 数据变量2.数据结构中数据元素之间的逻辑关系被称为__ ____。
A. 数据的存储结构B. 数据的基本操作C. 程序的算法D. 数据的逻辑结构3.在数据结构中,与所使用计算机无关的是数据的____ ___。
A. 存储结构B. 逻辑和物理结构C. 逻辑结构D. 物理结构4.在链式存储结构中,数据之间的关系是通过____ ____体现的。
A. 数据在内存的相对位置B. 指示数据元素的指针C. 数据的存储地址D. 指针5.计算算法的时间复杂度是属于一种____ ___。
A. 事前统计的方法B. 事前分析估算的方法C. 事后统计的方法D. 事后分析估算的方法6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是____ __。
A. n2B. nlognC. nD. logn7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。
A. O(1)B. O(n)C. O(200n)D. O(nlog2n)CDCBBDD第二章线性表单项选择题1.链表不具有的特点是____ ____。
A. 可随机访问任一元素B. 插入和删除时不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表的长度正比2.设顺序表的每个元素占8个存储单元。
第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。
A. 139B. 140C. 147D. 1483.在线性链表存储结构下,插入操作算法。
A. 需要判断是否表满B. 需要判断是否表空C. 不需要判断表满D. 需要判断是否表空和表满4.在一个单链表中,若删除p所指结点的后继结点,则执行。
A. p->next = p->next->next;B. p->next = p->next;C. p = p->next->next;D. p = p->next; p->next = p->next->next;5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。
习题51.填空题(1)已知二叉树中叶子数为50,仅有一个孩子的结点数为30,则总结点数为(___________)。
答案:129(2)3个结点可构成(___________)棵不同形态的二叉树。
答案:5(3)设树的度为5,其中度为1~5的结点数分别为6、5、4、3、2个,则该树共有(___________)个叶子。
答案:31(4)在结点个数为n(n>1)的各棵普通树中,高度最小的树的高度是(___________),它有(___________)个叶子结点,(___________)个分支结点。
高度最大的树的高度是(___________),它有(___________)个叶子结点,(___________)个分支结点。
答案:2 n-1 1 n 1 n-1(5)深度为k的二叉树,至多有(___________)个结点。
答案:2k-1(6)(7)有n个结点并且其高度为n的二叉树的数目是(___________)。
答案:2n-1(8)设只包含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为(___________),最小结点数为(___________)。
答案:2k+1-1 k+1(9)将一棵有100个结点的完全二叉树按层编号,则编号为49的结点为X,其双亲PARENT (X)的编号为()。
答案:24(10)已知一棵完全二叉树中共有768个结点,则该树中共有(___________)个叶子结点。
答案:384(11)(12)已知一棵完全二叉树的第8层有8个结点,则其叶子结点数是(___________)。
答案:68(13)深度为8(根的层次号为1)的满二叉树有(___________)个叶子结点。
答案:128(14)一棵二叉树的前序遍历是FCABED,中序遍历是ACBFED,则后序遍历是(___________)。
答案:ABCDEF(15)某二叉树结点的中序遍历序列为ABCDEFG,后序遍历序列为BDCAFGE,则该二叉树结点的前序遍历序列为(___________),该二叉树对应的树林包括(___________)棵树。
5 图【单选题】 1. 设无向图G 中有五个顶点,各顶点的度分别为2、4、3、1、2,则G 中边数为(C )。
A、4条 B、5条 C、6条 D、无法确定2. 含n 个顶点的无向完全图有(D )条边;含n 个顶点的有向图最多有(C )条弧;含n 个顶点的有向强连通图最多有(C )条弧;含n 个顶点的有向强连通图最少有(F)条弧;设无向图中有n 个顶点,则要接通全部顶点至少需(G )条边。
A 、n 2B 、n(n+1)C 、n(n-1)D 、n(n-1)/2E 、n+1F 、nG 、n-13. 对下图从顶点a 出发进行深度优先遍历,则(A )是可能得到的遍历序列。
A 、acfgdebB 、abcdefgC 、acdgbefD 、abefgcd对下图从顶点a 出发进行广度优先遍历,则(D )是不可能得到的遍历序列。
A 、abcdefgB 、acdbfgeC 、abdcegfD 、adcbgef4. 设图G 的邻接矩阵A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡010101010,则G 中共有(C )个顶点;若G 为有向图,则G 中共有(D )条弧;若G 为无向图,则G 中共有(B )条边。
A 、1B 、2C 、3D 、4E 、5F 、9G 、以上答案都不对5. 含n 个顶点的图,最少有(B )个连通分量,最多有(D )个连通分量。
A 、0B 、1C 、n-1D 、n6. 用邻接表存储图所用的空间大小(A )。
A 、与图的顶点数和边数都有关B 、只与图的边数有关C 、只与图的顶点数有关D 、与边数的平方有关7. n 个顶点的无向图的邻接表最多有(B )个表结点。
A 、n 2B 、n(n-1)C 、n(n+1)D 、n(n-1)/28. 无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是(D)。
数据结构第四五六七章作业答案数据结构第四、五、六、七章作业答案第四、五章一、填空题1.不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。
2.设s=“a;/document/mary.doc”,则strlen(s)=20,“/”的边线为3。
3.子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。
4、串成的存储方式存有顺序存储、堆上分配存储和块链存储5、有一个二维数组a[0:8,1:5],每个数组元素用相邻的4个字节存储,存储器按字节编址,假设存储数组元素a[0,1]的地址是100,若按行主顺序存储,则a[3,5]的地址是176和a[5,3]的地址是208。
若按列存储,则a[7,1]的地址是128,a[2,4]的地址是216。
6、设立数组a[1…60,1…70]的基地址为2048,每个元素占到2个存储单元,若以列序居多序顺序存储,则元素a[32,58]的存储地址为8950。
7、三元素组表中的每个结点对应于稠密矩阵的一个非零元素,它涵盖存有三个数据项,分别则表示该元素的行负号、列于负号和元素值。
8、二维数组a[10][20]使用列序居多方式存储,每个元素占到10个存储单元,且a[0][0]的存储地址就是2000,则a[6][12]的地址就是32609、已知二维数组a[20][10]采用行序为主方式存储,每个元素占2个存储单元,并且a[10][5]的存储地址是1000,则a[18][9]的存储地址是116810、已知二维数组a[10][20]采用行序为主方式存储,每个元素占2个存储单元,并且a[0][0]的存储地址是1024,则a[6][18]的地址是130011、两个串相等的充分必要条件是长度相等、对应位置的字符相同。
12、二维数组a[10][20]使用列序居多方式存储,每个元素占到一个存储单元,并且a[0][0]的存储地址就是200,则a[6][12]的地址就是200+(12*10+6)=326。
第 5 章树和二叉树1970-01-01第 5 章树和二叉树课后习题讲解1. 填空题⑴树是n(n≥0)结点的有限集合,在一棵非空树中,有()个根结点,其余的结点分成m(m>0)个()的集合,每个集合都是根结点的子树。
【解答】有且仅有一个,互不相交⑵树中某结点的子树的个数称为该结点的(),子树的根结点称为该结点的(),该结点称为其子树根结点的()。
【解答】度,孩子,双亲⑶一棵二叉树的第i(i≥1)层最多有()个结点;一棵有n(n>0)个结点的满二叉树共有()个叶子结点和()个非终端结点。
【解答】2i-1,(n+1)/2,(n-1)/2【分析】设满二叉树中叶子结点的个数为n0,度为2的结点个数为n2,由于满二叉树中不存在度为1的结点,所以n=n0+n2;由二叉树的性质n0=n2+1,得n0=(n+1)/2,n2=(n-1)/2。
⑷设高度为h的二叉树上只有度为0和度为2的结点,该二叉树的结点数可能达到的最大值是(),最小值是()。
【解答】2h -1,2h-1【分析】最小结点个数的情况是第1层有1个结点,其他层上都只有2个结点。
⑸深度为k的二叉树中,所含叶子的个数最多为()。
【解答】2k-1【分析】在满二叉树中叶子结点的个数达到最多。
⑹具有100个结点的完全二叉树的叶子结点数为()。
【解答】50【分析】100个结点的完全二叉树中最后一个结点的编号为100,其双亲即最后一个分支结点的编号为50,也就是说,从编号51开始均为叶子。
⑺已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点。
则该树中有()个叶子结点。
【解答】12【分析】根据二叉树性质3的证明过程,有n0=n2+2n3+1(n0、n2、n3分别为叶子结点、度为2的结点和度为3的结点的个数)。
⑻某二叉树的前序遍历序列是ABCDEFG,中序遍历序列是CBDAFGE,则其后序遍历序列是()。
【解答】CDBGFEA【分析】根据前序遍历序列和后序遍历序列将该二叉树构造出来。
数据结构习题参考答案第一章答案一、填空题1.数据元素,数据项2. O(1),O(n),O(log 2n),O(n 2)3.线性结构,非线性结构,顺序结构,链式结构4.无,一,无,一5.前驱,一,无,任意6.任意7. O(n 1/2)8.O(1)<o(2n<="") 第二章答案一、填空题1. n/2,(n-1)/2分析:当在顺序线性表中的第i (1<=i<=n+1)个位置之前插入一个新元素时,从第i 个元素起向后的n+1-i 个元素均要向后移动一个位置。
因此在等概率情况下,插入操作中元素的平均移动次数为∑+==-++=112)1(11)(n i ni n n n f ;当在顺序线性表中删除第i (1<=i<=n )个位置上的元素,从第i+1个元素起向后的n-i 个元素均要向前移动一个位置。
因此在等概率情况下,删除操作中元素的平均移动次数为∑=-=-= n i n i n n n f 121)(1)(。
2.向后3.向前4.指针域5.一定,不一定6. O(n)7. O(n)8.消除空表的特殊性,统一表示和处理空表和非空表的情形,从而简化插入和删除等操作的某些细节。
9.前驱,后继10.O(n)二、填空题1. (1)2. (1)3. (4)4. (2)5. (2)6. (4)7. (4)8. (1)9. (4)10.(1)11.(2)12.(3)第三章参考答案一、填空题1.线性,任何,栈顶,队尾,队头2.先进后出(FILO ),队尾,队头,先进先出(FIFO )3. top==0,top==m4. 235415.前一个位置,所在位置,m-1分析:在顺序循环队列中约定头指针front 和尾指针rear 所指向的位置,是牺牲掉一个存储单元而方便表示队列空和队列满的条件,因此顺序循环队列中实际可用的存储单元只有m-1个。
6. (rear+1)%m==front ,rear==front7. O(1)8.返回地址,返回地址二、选择题1.(3) 2.(3) 3.(3) 4. (2)5. (2)6. (3)7. (1)8. (4)因为:顺序循环队列中的元素个数=??<+-≥-front rear m front rear front rear front rear ,整理合并可写成(rear-front+m)%m 。
《数据结构》第五章习题参考答案一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)1、知道一颗树的先序序列和后序序列可唯一确定这颗树。
( ×)2、二叉树的左右子树可任意交换。
(×)3、任何一颗二叉树的叶子节点在先序、中序和后序遍历序列中的相对次序不发生改变。
(√)4、哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
(√)5、用一维数组存储二叉树时,总是以前序遍历顺序存储结点。
( ×)6、完全二叉树中,若一个结点没有左孩子,则它必是叶子结点。
( √)7、一棵树中的叶子数一定等于与其对应的二叉树的叶子数。
(×)8、度为2的树就是二叉树。
(×)二、单项选择题1.具有10个叶结点的二叉树中有( B )个度为2的结点。
A.8 B.9 C.10 D.112.树的后根遍历序列等同于该树对应的二叉树的( B )。
A. 先序序列B. 中序序列C. 后序序列3、二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG 。
该二叉树根的右子树的根是:( C )A. EB. FC. GD. H04、在下述结论中,正确的是( D )。
①具有n个结点的完全二叉树的深度k必为┌log2(n+1)┐;②二叉树的度为2;③二叉树的左右子树可任意交换;④一棵深度为k(k≥1)且有2k-1个结点的二叉树称为满二叉树。
A.①②③B.②③④C.①②④D.①④5、某二叉树的后序遍历序列与先序遍历序列正好相反,则该二叉树一定是( D )。
A.空或只有一个结点B.完全二叉树C.二叉排序树D.高度等于其结点数三、填空题1、对于一棵具有n个结点的二叉树,对应二叉链接表中指针总数为__2n____个,其中___n-1_____个用于指向孩子结点,___n+1___个指针空闲着。
2、一棵深度为k(k≥1)的满二叉树有_____2k-1______个叶子结点。
第5章树和二叉树一、单项选择题1.以下说法错误的是(B )。
A. 存在这样的二叉树,对其采用任何次序的遍历其结点访问序列均相同B. 二叉树是树的特殊情形C. 满二叉树中所有叶结点都在同一层上D. 在二叉树只有一棵子树的情况下,也要指出是左子树还是右子树2.树最适合用来表示( C)。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据3.下列叙述正确的是(C )。
A. 二叉树是度为2的有序树B. 完全二叉树一定存在度为1的结点C. 深度为k的二叉树中结点总数≤2k-1D. 对于有n个结点的二叉树,其高度为⎣log2n⎦+14.按照二叉树的定义,具有三个节点的二叉树有( C )种。
A.3B.4C.5D.65.下列叙述中正确的是(C )。
A. 二叉树是度为2的有序树B. 二叉树中的结点只有一个孩子时无左右之分C. 二叉树中每个结点最多只有两棵子树,并且有左右之分D. 二叉树若存在两个结点,则必有一个为根,另一个为左孩子6.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是( C )。
A.N0=N1+1 B.N=Nl+N2C.N=N2+1 D.N=2N1+17.设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为( B )。
A. 2i+1B.2iC.i/2D.2i-18.有100个结点的完全二叉树由根开始从上到下从左到右对结点进行编号,根结点的编号为1,编号为46的结点的右孩子的编号为( C )A.50 B.92 C.93 D.869.若一棵有n个结点的树,则该树中的度之和为(C )。
A. n+1B. nC. n-1D. 不确定10.已知完全二叉树有90个结点,则整个二叉树有( B )个度为1的结点。
A 0B 1C 2D 不确定11.一棵完全二叉树上有1001个结点,其中叶子结点的个数是(C )。
第五章习题5.1 假设有6行8列的二维数组A,每个元素占用6个字节,存储器按字节编址。
已知A的基地址为1000,计算:数组A共占用多少字节;数组A的最后一个元素的地址;按行存储时元素A36的地址;按列存储时元素A36的地址;5.2 设有三对角矩阵An×n ,将其三条对角线上的元素逐行地存于数组B(1:3n-2)中,使得B[k]= aij,求:(1)用i,j表示k的下标变换公式;(2)用k表示i,j的下标变换公式。
5.3假设稀疏矩阵A和B均以三元组表作为存储结构。
试写出矩阵相加的算法,另设三元组表C存放结果矩阵。
5.4在稀疏矩阵的快速转置算法5.2中,将计算position[col]的方法稍加改动,使算法只占用一个辅助向量空间。
5.5写一个在十字链表中删除非零元素aij的算法。
5.6画出下面广义表的两种存储结构图示:((((a), b)), ((( ), d), (e, f)))5.7求下列广义表运算的结果:(1)HEAD[((a,b),(c,d))];(2)TAIL[((a,b),(c,d))];(3)TAIL[HEAD[((a,b),(c,d))]];(4)HEAD[TAIL[HEAD[((a,b),(c,d))]]];(5)TAIL[HEAD[TAIL[((a,b),(c,d))]]];实习题若矩阵Am×n 中的某个元素aij是第i行中的最小值,同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。
假设以二维数组存储矩阵,试编写算法求出矩阵中的所有马鞍点。
第五章答案5.2设有三对角矩阵A n×n,将其三条对角线上的元素逐行的存于数组B[1..3n-2]中,使得B[k]=a ij,求:(1)用i,j表示k的下标变换公式;(2)用k表示i、j的下标变换公式。
【解答】(1)k=2(i-1)+j(2) i=[k/3]+1, j=[k/3]+k%3 ([ ]取整,%取余)5.4在稀疏矩阵的快速转置算法5.2中,将计算position[col]的方法稍加改动,使算法只占用一个辅助向量空间。
第5章数组与广义表一、选择题(每小题1分,共10分)1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( A )。
A.110B.108C.100D.1202.在数组A中,每一个数组元素A[i][j]占用3个存储字节,行下标i从1到8,列下标j 从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字节数是( C )。
A.80B.100C.240D.2703.假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( C )。
(无第0行第0列元素)A.16902B.16904C.14454D.答案A, B, C均不对4.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( A )。
A. 198B. 195C. 197D.1965.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( A )。
A. 1175B. 1180C. 1205D. 12106.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]= ( B )。
A. 808B. 818C. 1010D. 10207. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( B )。
A. BA+141B. BA+180C. BA+222D. BA+2258.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。
A、 13B、 33C、 18D、 409. 二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。
若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( B )的起始地址相同。
设每个字符占一个字节。
A、 A[8,5]B、 A[3,10]C、 A[5,8]D、 A[0,9]10.若对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+i11.对稀疏矩阵进行压缩存储目的是( C )。
A、便于进行矩阵运算B、便于输入和输出C、节省存储空间D、降低运算的时间复杂度12.数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为( A )。
A、 j=r[j].nextB、 j=j+1C、 j=j->nextD、 j=r[j]-> next13. 数组A[0..4,-3..-1,5..7]中含有元素的个数为( B )。
A、 55B、 45C、 36D、 1614.有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是( B )。
A、 60B、 66C、 18000D、 3315.设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A )。
A、(i-1)*n+jB、(i-1)*n+j-1C、 i*(j-1)D、 j*m+i-116.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+117.设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-118.对于以行为主序的存储结构来说.在数组A[c1..d1,c2..d2]中,c1和d1分别为数组A 的第一维下标的下、上界,c2和d2分别为第二维下标的下、上界.每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由( B )确定。
A、 Loc[i,j]=[(d2-c2+1)(i-c1)+(j-c2)]×kB、 Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)]×kC、 Loc[i,j]=A[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)]×kD、 Loc[i,j]=Loc[0,0]+[(d2-c2+1)(i-c1)+(j-c2)]×k19. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[1..n(n-1)/2]|中,对下三角部分中任一元素(i〉=j)在一维数组B的下标位置k值是( B )。
A、 i(i-1)/2+j-lB、 i(i-1)/2+jC、 i(i+1)/2+j-1D、 i(i+1)/2+j20.稀疏矩阵一般的压缩存储方法有( C )两种。
A、二维数组和三维数组B、三元组和散列表C、三元组和十字链表D、散列表和十字链表参考题:21.数组SZ[-3…5,O… 10]含有元素数目为( B )。
A、88B、 99C、 80D、 9022.二维数组A的每个元素是由6个字符组成的串,其行下标i=0、1、…、8.列下标i=1、2、…、10。
若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( B )的起始地址相同。
设每个字符占一个字节。
A、 A[8,5]B、 A[3,10]C、 A[5,8]D、 A[0,9]23.设有一个10阶的对称矩阵A,采用压缩破除计方式,以行序为主存储,a1,1为第一个元素,其存储地址为1,每个元素占1个地址空间,则a8,5的地址为( B )。
A、13B、33C、18D、4024. 稀疏矩阵进行压缩存储目的是( C )。
A、便于进行矩阵运算B、便于输入和输出C、节省存储空间D、降低运算的时间复杂度25.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使沿链移动的操作为( A )。
A、j=r[j].nextB、 j=j+1C、 j=j->nextD、 j=r[j]-> next26.数组的基本操作主要包括( C )A、建立与删除B、索引与修改C、访问与修改D、访问与索引27.设矩阵A是一个对称矩阵,为了节省空间,将其下三角矩阵按行序存放在一维数组B[1,n(n+1)/2]中,对下三角部分中任一元素aij(i≥j),在一维数B中下标k的值是( B )。
A、 i(i-1)/2+j-1B、 i(i-1)/2+jC、 i(i+1)/2+j-1D、 i(i+1)/2+j8.设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[8,5]的存储首地址为( B )。
A、 BA+141B、 BA+180C、 BA+222D、 BA+225数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[8][5]的起始地址为 C 。
A .SA+141 B. SA+144 C.SA+222 D .SA+225二、判断题(每小题1分,共10分)1.一个稀疏矩阵Am*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,则就完成了Am*n的转置运算。
(×)2.二维以上的数组其实是一种特殊的广义表。
(√)3.数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。
(×)4.稀疏矩阵压缩存储后,必会失去随机存取功能。
(√)5.所谓取广义表的表尾就是返回广义表中最后一个元素。
(×)6.广义表是由零或多个原予或子表所组成的有限序列,所以广义表可能为空表。
( √)7.广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。
(×)8.线性表可以看成是广义表的特例,如果广义表中的每个元素都是原子,则广义表便成为线性表。
( √)9.若一个广义表的表头为空表,则此广义表亦为空表。
(×)10.数组元素的下标值越大,存取时间越长。
( ×)11.数组是一种复杂的数据结构:数组元素之间的关系既不是线性的,也不是树形的( √)12.从逻辑结构上看,n维数组的每个元素均属于n个向量。
(√)13.二维数组是其数据元素为线性表的线性表(√)14.数组是同类型值的集合。
(×)三、填空题(每空1分,共10分)1.已知二维数组按“行优先顺序”存储在内存中,a11的存储地址为LOC(a11),则元素a ij 的存储地址为LOC(a ij)= 。
(假定每一个元素占2个存储单元,1≤i≤n,1≤j ≤m)答案:Loc(a11)+((i-1)*m+j-1)*22.二维数组A[4][4](即A[0..3][0..3])的元素起始地址是loc(A[0][0])=1000,元素的长度为2,则LOC(A[2][2])的地址为。
答案:10203.设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的存储字地址是____________。
答案:3224.二维数组a[4][5][6](下标从0开始计,a有4*5*6个元素),每个元素的长度是2,则a[2][3][4]的地址是1164 。
(设a[0][0][0]的地址是1000,数据以行为主方式存储)解释:LOC(aijk)=LOC(a000)+[v2*v3*(i-c1)+v3*(j-c2)+(k-c3)]*l (l为每个元素所占单元数)5.对矩阵压缩是为了节省存储空间。