数据结构第五章

数据结构第五章 查找 答案

数据结构与算法上机作业第五章查找

一、选择题 1、若构造一棵具有n个结点的二叉排序树,在最坏情况下,其高度不超过 B 。 A. n/2 B. n C. (n+1)/2 D. n+1 2、分别以下列序列构造二叉排序数(二叉查找树),与用其他3个序列所构造的结果不同的是 C : A. (100, 80, 90, 60, 120, 110, 130) B. (100, 120, 110, 130, 80, 60, 90) C. (100, 60, 80, 90, 120, 110, 130) D. (100, 80, 60, 90, 120, 130, 110) 3、不可能生成下图所示的二叉排序树的关键字的序列是 A 。 A. 4 5 3 1 2 B. 4 2 5 3 1 C. 4 5 2 1 3 D. 4 2 3 1 5 4、在二叉平衡树中插入一个结点造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作 C 型调整使其平衡。 A. LL B. LR C. RL D. RR 5、一棵高度为k的二叉平衡树,其每个非叶结点的平衡因子均为0,则该树共有 C 个结点。 A. 2k-1-1 B. 2k-1+1 C. 2k-1 D. 2k+1 6、具有5层结点的平衡二叉树至少有 A 个结点。 A. 12 B. 11 C. 10 D. 9 7、下面关于B-和B+树的叙述中,不正确的是 C 。 A. B-树和B+树都是平衡的多叉树 B. B-树和B+树都可用于文件的索引结构 C. B-树和B+树都能有效地支持顺序检索

D. B-树和B+树都能有效地支持随机检索 8、下列关于m阶B-树的说法错误的是 D 。 A. 根结点至多有m棵子树 B. 所有叶子结点都在同一层次 C. 非叶结点至少有m/2(m为偶数)或m/2+1(m为奇数)棵子树 D. 根结点中的数据是有序的 9、下面关于哈希查找的说法正确的是 C 。 A. 哈希函数构造得越复杂越好,因为这样随机性好,冲突小 B. 除留余数法是所有哈希函数中最好的 C. 不存在特别好与坏的哈希函数,要视情况而定 D. 若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单地将该元素删去即可 10、与其他查找方法相比,散列查找法的特点是 C 。 A. 通过关键字的比较进行查找 B. 通过关键字计算元素的存储地址进行查找 C. 通过关键字计算元素的存储地址并进行一定的比较进行查找 D. 以上都不是 11、有一组关键字{8, 24, 16, 3, 12, 32, 51},采用除留余数法构造散列函数:H(key)=key mod 12,则将发生次冲突。 A. 3 B. 4 C. 5 D. 6 12、有一个结点的关键字为83,采用移位叠加法生成4位散列地址,则生成的地址为 B 。 A. 3482 B. 3583 C. 9018 D. 9019 二、填空题 1、在查找过程中有插入或删除元素操作的,称为动态查找。

数据结构第五章习题课课案

1、特殊矩阵和稀疏矩阵哪一种压缩存储后会失去随机存取的功能?为什么? 答:后者在采用压缩存储后将会失去随机存储的功能。因为在这种矩阵中,非 零元素的分布是没有规律的,为了压缩存储,就将每一个非零元素的值和它所 在的行、列号作为一个结点存放在一起,这样的结点组成的线性表中叫三元组 表,它已不是简单的向量,所以无法用下标直接存取矩阵中的元素。 2、二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下 标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的 起始地址与M按列存储时元素()的起始地址相同。 A、M[2][4] B、M[3][4] C、M[3][5] D、M[4][4] 为第 3、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a 11 的地址为()。 一元素,其存储地址为1,每个元素占一个地址空间,则a 85 A. 13 B. 33 C. 18 D. 40 4、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线 (i

数据结构第五章图习题教学文案

05 图 【单选题】 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 2 B 、n(n+1) C 、n(n-1) D 、n(n-1)/2 E 、n+1 F 、n G 、n-1 3. 对下图从顶点a 出发进行深度优先遍历,则(A )是可能得到的遍历序列。 A 、acfgdeb B 、abcdefg C 、acdgbef D 、abefgcd 对下图从顶点a 出发进行广度优先遍历,则(D )是不可能得到的遍历序列。 A 、abcdefg B 、acdbfge C 、abdcegf D 、 adcbgef 4. 设图G 的邻接矩阵A=???? ??????010101010,则G 中共有(C )个顶点;若G 为有向图,则G 中共有(D )条弧;若G 为无向图,则G 中共有(B )条边。 A 、1 B 、2 C 、3 D 、4 E 、5 F 、9 G 、以上答案都不对 5. 含n 个顶点的图,最少有(B )个连通分量,最多有(D )个连通分量。 A 、0 B 、1 C 、n-1 D 、n 6. 用邻接表存储图所用的空间大小(A )。 A 、与图的顶点数和边数都有关 B 、只与图的边数有关 C 、只与图的顶点数有关 D 、与边数的平方有关 7. n 个顶点的无向图的邻接表最多有(B )个表结点。 A 、n 2 B 、n(n-1) C 、n(n+1) D 、n(n-1)/2 8. 无向图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 )。 A 、a,b,e,c,d,f B 、a,c,f,e,b,d C 、a,e,b,c,f,d D 、a,e,d,f,c,b 9. 图的BFS 生成树的树高比DFS 生成树的树高(A )。 A 、小或相等 B 、小 C 、大或相等 D 、大

数据结构作业系统_第五章答案

5.21④假设稀疏矩阵A和B均以三元组表作为存储结构。 试写出矩阵相加的算法,另设三元组表C存放结果矩阵。 要求实现以下函数: Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C); /* 三元组表示的稀疏矩阵加法: C=A+B */ 稀疏矩阵的三元组顺序表类型TSMatrix的定义: #define MAXSIZE 20 // 非零元个数的最大值 typedef struct { int i,j; // 行下标,列下标 ElemType e; // 非零元素值 }Triple; typedef struct { Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int mu,nu,tu; // 矩阵的行数、列数和非零元个数 }TSMatrix; Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C) /* 三元组表示的稀疏矩阵加法: C=A+B */ { int k=1,n=1,p=1; ElemType ce; if(A.mu!=B.mu||A.nu!=B.nu)return ERROR; while(k<=A.tu&&n<=B.tu) { if(A.data[k].i==B.data[n].i&&A.data[k].j==B.data[n].j) { ce=A.data[k].e+B.data[n].e; if(ce) { C.data[p].i=A.data[k].i; C.data[p].j=A.data[k].j; C.data[p].e=ce; p++; //printf("%d,,%d ",ce,C.data[p-1].e); } k++;n++; } else if(A.data[k].i

数据结构第五章参考答案

习题5 1.填空题 (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,则该二叉树结点的前序遍历序列为(___________),该二叉树对应的树林包括(___________)棵树。答案:EACBDGF 2 2.选择题 (1)在一棵度为3的树中,度为3的结点的个数为2,度为2的结点个数为1,则度为0的结点个数为()。 A. 4 B. 5 C. 6 D. 7 (2)下列陈述中正确的是()。 A. 二叉树是度为2的有序数

(完整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]*k B.Loc[i,j]=loc[0,0]+[(m+n)*i+j]*k C.Loc[i,j]=loc[0,0]+[(n+1)*i+j]*k D.Loc[i,j]=[(n+1)*i+j]*k 3.稀疏矩阵的压缩存储方法是只存储 ( ) A.非零元素 B. 三元祖(i,j, aij) C. aij D. i,j 4. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。 A. 1175 B. 1180 C. 1205 D. 1210 5. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。 A. i(i-1)/2+j B. j(j-1)/2+i C. i(j-i)/2+1 D. j(i-1)/2+1 6. 用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j 沿链移动的操作为( )。 A. j=r[j].next B. j=j+1 C. j=j->next D. j=r[j]-> next 7. 对稀疏矩阵进行压缩存储目的是()。 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))的表头是(),表尾是()。 A. a B.() C.(a,b,c,d) D.(b,c,d) 10. 设广义表L=((a,b,c)),则L的长度和深度分别为()。 A. 1和1 B. 1和3 C. 1和2 D. 2和3 11. 下面说法不正确的是( )。 A. 广义表的表头总是一个广义表 B. 广义表的表尾总是一个广义表 C. 广义表难以用顺序存储结构 D. 广义表可以是一个多层次的结构 二、填空题 1.通常采用___________存储结构来存放数组。对二维数组可有两种存储方法:一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。 2. 用一维数组B与列优先存放带状矩阵A中的非零元素A[i,j] (1≤i≤n,i-2≤j≤i+2),B 中的第8个元素是A 中的第_ _行,第_ _列的元素。

数据结构答案第5章

第 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 【分析】根据前序遍历序列和后序遍历序列将该二叉树构造出来。 ⑼在具有n个结点的二叉链表中,共有()个指针域,其中()个指针域用于指向其左右孩子,剩下的()个指针域则是空的。 【解答】2n,n-1,n+1

数据结构作业系统_第五章答案

数据结构作业系统_第五章 答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

5.21④假设稀疏矩阵A和B均以三元组表作为存储结构。 试写出矩阵相加的算法,另设三元组表C存放结果矩阵。 要求实现以下函数: Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C); /* 三元组表示的稀疏矩阵加法: C=A+B */ 稀疏矩阵的三元组顺序表类型TSMatrix的定义: #define MAXSIZE 20 // 非零元个数的最大值 typedef struct { int i,j; // 行下标,列下标 ElemType e; // 非零元素值 }Triple; typedef struct { Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int mu,nu,tu; // 矩阵的行数、列数和非零元个数 }TSMatrix; Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C) /* 三元组表示的稀疏矩阵加法: C=A+B */ { int k=1,n=1,p=1; ElemType ce; if(A.mu!=B.mu||A.nu!=B.nu)return ERROR; while(k<=A.tu&&n<=B.tu) { if(A.data[k].i==B.data[n].i&&A.data[k].j==B.data[n].j) { ce=A.data[k].e+B.data[n].e; if(ce) { C.data[p].i=A.data[k].i; C.data[p].j=A.data[k].j; C.data[p].e=ce; p++; //printf("%d,,%d ",ce,C.data[p-1].e); } k++;n++; } else if(A.data[k].i

数据结构第五章习题答案

1.二维数组A行下标i的范围从1到12,列下标j的范围从3到10,采用行序为主序存储,每个数据存储元素占用4个存储单元,该数组的首地址(既A[1][3]的地址)为1200,则A[6][5]的地址为(D) A.1400 B.1404 C.1372 D.1368 2.有一个M*N的矩阵A,若采用行序为主序进行顺序存储,每个元素占用8个字节,则A ij (1≤i≤M,1≤i≤N)元素的相对字节地址(相对首元素地址而言)为(B) A.((i-1)*N+j)*8 B.((i-1)*N+j-1)*8 C.(i*N+j-1)*8 D.((i-1)*N+j+1)*8 3.稀疏矩阵一般的压缩存储方法有两种,即(D) A.二维数组和三维数组 B.三元组和散列 C.散列和十字链表 D.三元组和十字链表 4.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点(B) A.正确 B.错误 5.广义表((a,b),c,d)的表头是(C),表尾是(D)。 A.a B.b C.(a,b) D.(c,d) 6.一个广义表的表头总是广义表,这个断言是(B) A.正确 B.错误 7.二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是(326) 8.有一个10阶对称矩阵A,采用压缩存储方式(以行序为主存储,且A[0][0]=1),则A[4][3]的地址是(14) 9.一个广义表为(a,(a,b),d,e,((i,j),k)),则该广义表的长度为(5),深度为(3) 10.广义表((a),((b),c),(((d))))的表头是((a)),表尾是((((b),c),(((d))))) 11.已知广义表A=((a,b,c),(d,e,f)),则广义表运算head(tail(tail(A)))=(e) 12.已知广义表GL=(a,(b,c,d),e),运用head和tail函数取出GL中的原子b的运算是(head(head(tail(GL)))) 13.特殊矩阵和压缩矩阵哪一种压缩存储后会失去随机存取的功能?为什么? 答:稀疏矩阵在进行压缩存储后会失去随机存取的功能,因为非零元素的位置没有办法确定。 14.稀疏矩阵的三元组表存储结构中,记录的域rows,cols,nums和data分别存放什么内容? 答:矩阵的行数,列数,非零元素个数及飞灵元三元组表。 15.简述广义表和线性表的区别和联系。 答:广义表中存储的是数据元素,该数据元素可能是单个元素,也可能是广义表;而线性表中只能包含数据元素。 16.广义表GL=((),()),求head(GL),tail(GL),GL的长度和深度。 答:head(GL)=(()) tail(GL)=(()) 长度:2 深度:2

数据结构课后习题及解析第五章

第五章习题 5.1 假设有6行8列的二维数组A,每个元素占用6个字节,存储器按字节编址。已知A的基地址为 1000,计算: 数组A共占用多少字节; 数组A的最后一个元素的地址; 按行存储时元素A 36 的地址; 按列存储时元素A 36 的地址; 5.2 设有三对角矩阵A n×n ,将其三条对角线上的元素逐行地存于数组B(1:3n-2)中,使得B[k]= a ij , 求: (1)用i,j表示k的下标变换公式; (2)用k表示i,j的下标变换公式。 5.3假设稀疏矩阵A和B均以三元组表作为存储结构。试写出矩阵相加的算法,另设三元组表C存放 结果矩阵。 5.4在稀疏矩阵的快速转置算法5.2中,将计算position[col]的方法稍加改动,使算法只占用一个 辅助向量空间。 5.5写一个在十字链表中删除非零元素a ij 的算法。 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))]]];

实习题 若矩阵A m×n 中的某个元素a ij 是第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]的方法稍加改动,使算法只占用一个辅助向量空间。 【解答】算法(一) FastTransposeTSMatrix(TSMartrix A, TSMatrix *B) {/*把矩阵A转置到B所指向的矩阵中去,矩阵用三元组表表示*/ int col,t,p,q; int position[MAXSIZE]; B->len=A.len; B->n=A.m; B->m=A.n; if(B->len>0) { position[1]=1; for(t=1;t<=A.len;t++) position[A.data[t].col+1]++; /*position[col]存放第col-1列非零元素的个数, 即利用 pos[col]来记录第col-1列中非零元素的个数*/ /*求col列中第一个非零元素在B.data[ ]的位置,存放在position[col]中*/ for(col=2;col<=A.n;col++) position[col]=position[col]+position[col-1]; for(p=1;p

数据结构第五章参考答案

数据结构第五章参考答案

习题5 1.填空题 (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

数据结构 第五章数组和广义表

第五章数组和广义表:习题 习题 一、选择题 1.假设以行序为主序存储二维数组A[1..100,1..100],设每个数据元素占两个存储单元,基地址为10,则LOC(A[5,5])=( )。 A. 808 B. 818 C. 1010 D. 1020 2.同一数组中的元素( )。 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+j B. (i-l)×n+j-l C.i×(j-l) D. j×m+i-l 6.所谓稀疏矩阵指的是( )。 A.零元素个数较多的矩阵 B.零元素个数占矩阵元素中总个数一半的矩阵 C.零元素个数远远多于非零元素个数且分布没有规律的矩阵 D.包含有零元素的矩阵 7.对稀疏矩阵进行压缩存储的目的是( )。 A.便于进行矩阵运算 B.便于输入和输出 C.节省存储空间 D. 降低运算的时间复杂度 8.稀疏矩阵一般的压缩存储方法有两种,即( )。 A.二维数组和三维数组 B.三元组和散列 C.三元组和十字链表 D.散列和十字链表 9.有一个100×90的稀疏矩阵,非0元素有10个,设每个整型数占两字节,则用三元组表示该矩阵时,所需的字节数是( )。 A. 60 B. 66 C.18000 D.33 10. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+I)/2] 中,则对任一上三角元素a[i][j]对应T[k]的下标k是( )。 A. i(i-l)/2+j B. j(j-l)/2+i C. i(j-i)/2+1 D. j(i-l)/2+1 11.已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是( ) A. head(tail(tail(L))) B. tail(head(head(taiI(L)))) C. head(tail(head(taiI(L)))) D. head(tail(head(tail(tail(L)))))

数据结构 第五章

第五章练习 1.假设一个15阶的上三角矩阵A按行优先顺序压缩存储在一维数组B中,则非零元素 A[9,9]在B中的存储位置k=_______。(注:矩阵元素下标从1开始)。 2.三维数组a[4][5][6](下标从0开始计,a有4*5*6个元素),每个元素的长度是2,则a[2][3][4] 的地址是_______。(设a[0][0][0]的地址是1000,数据以行为主序方式存储)。 3.假设按低下标优先存储整数数组A[9][3][5][8]时,第一个元素的字节地址是100,每个 整数占四个字节。问下列元素的存储地址是什么? (1)a0000 (2)a1111 (3)a3125 (4) a8247 4.按高下标优先存储方式(最右的下标为主序),顺序列出数组A[2][2][3][3]中所有元素 aijkl,列出aijkl的序列。 5.广义表运算式HEAD(TAIL(((a,b,c),(x,y,z))))的结果是_______。 6.求下列广义表操作的结果 GetHead 【(p,h,w)】 GetTail 【(b,k,p,h)】 GetHead 【((a,b),(c,d))】 GetTail 【((a,b),(c,d))】 GetTail【GetHead【GetTail【((a,b),(c,d))】】】 7.假设采用以下两种结点的链表作为广义表的存贮结构,表结点:(tag=1,hp,tp), 元素结 点;(tag=0,data)。广义表A =(((a)),(b),c,(a),(((d,e)))) (1) 画出广义表的存储结构图。 (2) 写出表的长度与深度。 (3) 用取表头head(ls)和取表尾tail(ls)的基本运算,求出e。

数据结构 第五章树

第五章 树 一、选择题 1、二叉树的第i 层最多有( )个结点。 A .2i B. 2i C. 2i-1 D.2i -1 2. 对于一棵满二叉树,高度为h ,共有n 个结点,其中有m 个叶子结点,则( ) A .n=h+m B.h+m=2n C.m=h-1 D.n=2h -1 3. 在一棵二叉树中,共有16个度为2的结点,则其共有( )个叶子结点。 A .15 B.16 C.17 D.18 4. 一棵完全二叉树中根结点的编号为1,而且编号为23的结点有左孩子但没有右孩子,则此树中共有( )个结点。 A .24 B.45 C.46 D.47 5. 下述编码那一组不是前缀码( ) A .00,01,10,11 B.0,1,00,11 C.0,10,110,111 D.1,01,001,000 6. 某二叉树的中序序列和后序序列相同,则这棵二叉树必然是( ) A .空树 B .空树或任一结点均无左孩子的非空二叉树 C .空树或任一结点均无右孩子的非空二叉树 D .空树或仅有一个结点的二叉树 7. 设n,m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是( ) A .n 在m 的右边 B.n 是m 的祖先 C .n 在m 的左边 D.n 是m 的子孙 8、假定中根遍历二叉树的定义如下:若二叉树为非空二叉树,则中根遍历根的右子树;访问根结点;中根遍历根的左子树。按此定义遍历下图所示的二叉树,遍历的结果为: A 、 DBEAFHGC A B 、 C GHFADBE B C C 、 EBDAFHGC E D F D 、 FHGCADB E G H 9、文中出现的字母为A 、B 、C 、D 和E ,每个字母在电文中出现的次数分别为9、27、3、5和11。按哈夫曼编码,则字母C 的编码应是: A 、10 B 、0110 C 、1110 D 、1111 10、设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为( ) A .5 B .6 C .7 D .8 11、.算术表达式a+b*(c+d/e )转为后缀表达式后为( ) A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .12、. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( ) A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 13.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( ) A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE 14.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( ) A .9 B .11 C .15 D .不确定 15.树的后根遍历序列等同于该树对应的二叉树的( ). A. 先序序列 B. 中序序列 C. 后序序列 16.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( )。 A .CBEFDA B . FEDCBA C . CBEDFA D .不定

数据结构复习题第5章答案2014616

第5章数组与广义表 一、选择题(每小题1分,共10分) 1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( A )。 A.110 B.108 C.100 D.120 2.在数组A中,每一个数组元素A[i][j]占用3个存储字节,行下标i从1到8,列下标j 从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字节数是( C )。 A.80 B.100 C.240 D.270 3.假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( C )。(无第0行第0列元素) A.16902 B.16904 C.14454 D.答案A, B, C均不对 4.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( A )。 A. 198 B. 195 C. 197 D.196 5.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( A )。 A. 1175 B. 1180 C. 1205 D. 1210 6.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]= ( B )。 A. 808 B. 818 C. 1010 D. 1020 7. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( B )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 8.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A、 13 B、 33 C、 18 D、 40 9. 二维数组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(inext D、 j=r[j]-> next 13. 数组A[0..4,-3..-1,5..7]中含有元素的个数为( B )。

数据结构课后习题答案第五章数组与广义表

第五章数组与广义表 一、假设有二维数组A6*8,每个元素用相邻的6个字节存储,存储器按字节 编址。已知A的起始存储位置(基地址)为1000。计算: 1、数组A的体积(即存储量); 2、数组A的最后一个元素a57的第一个字节的地址; 3、按行存储时,元素a14的第一个字节的地址; 4、按列存储时,元素a47的第一个字节的地址; 答案: 1、(6*8)*6=288 2、loc(a57)=1000+(5*8+7)*6=1282或=1000+(288-6)=1282 3、loc(a14)=1000+(1*8+4)*6=1072 4、loc(a47)=1000+(7*6+4)*6=1276 二、假设按低下标(行优先)优先存储整数数组A9*3*5*8时第一个元素的字节地址是100,每个整数占四个字节。问下列元素的存储地址是什么? (1)a0000(2)a1111(3)a3125 (4)a8247 答案:(1)100 (2)loc(a1111)=100+(1*3*5*8+1*5*8+1*8+1)*4=776 (3) loc(a3125)=100+(3*3*5*8+1*5*8+2*8+5)*4=1784 (4) loc(a8247)=100+(8*3*5*8+2*5*8+4*8+7)*4=4416 五、设有一个上三角矩阵(aij)n*n,将其上三角元素逐行存于数组B[m]中,(m 充分大),使得B[k]=aij且k=f1(i)+f2(j)+c。试推导出函数f1,f2和常数C(要求f1和f2中不含常数项)。 答: K=n+(n-1)+(n-2)+…..+(n-(i-1)+1)+j-i =(i-1)(n+(n-i+2))/2+j-i 所以f1(i)=(n+1/2)i-1/2i2 f2(j)=j c=-(n+1) 九、已知A为稀疏矩阵,试从空间和时间角度比较采用两种不同的存储结构(二

数据结构第五章作业答案

第5章数组和广义表 1.选择题 (1)假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。 A.808 B.818 C.1010 D.1020 (2)设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。 A.BA+141 B.BA+180 C.BA+222 D.BA+225 (3)设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。 A.13 B.33 C.18 D.40 (4)若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定a ij(i

相关主题
相关文档
最新文档