数据结构第五章查找答案

合集下载

数据结构第五章 查找 答案

数据结构第五章 查找 答案

数据结构与算法上机作业第五章查找一、选择题1、若构造一棵具有n个结点的二叉排序树,在最坏情况下,其高度不超过 B 。

A. n/2B. nC. (n+1)/2D. n+12、分别以下列序列构造二叉排序数(二叉查找树),与用其他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 2B. 4 2 5 3 1C. 4 5 2 1 3D. 4 2 3 1 54、在二叉平衡树中插入一个结点造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作 C 型调整使其平衡。

A. LLB. LRC. RLD. RR5、一棵高度为k的二叉平衡树,其每个非叶结点的平衡因子均为0,则该树共有 C 个结点。

A. 2k-1-1B. 2k-1+1C. 2k-1D. 2k+16、具有5层结点的平衡二叉树至少有 A 个结点。

A. 12B. 11C. 10D. 97、下面关于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 。

数据结构答案 第5章 串学习指导

数据结构答案 第5章 串学习指导

第5章串5.1 知识点分析1.串的定义串(String)是由零个或多个任意字符组成的有限序列。

一般记作:s="a1 a2 …a i…a n"。

其中s 是串名,用双引号括起来的字符序列为串值,但引号本身并不属于串的内容。

a i(1<=i<=n)是一个任意字符,它称为串的元素,是构成串的基本单位,i是它在整个串中的序号;n为串的长度,表示串中所包含的字符个数。

2.几个术语(1)长度串中字符的个数,称为串的长度。

(2)空串长度为零的字符串称为空串。

(3)空格串由一个或多个连续空格组成的串称为空格串。

(4)串相等两个串相等,是指两个串的长度相等,且每个对应字符都相等。

(5)子串串中任意连续字符组成的子序列称为该串的子串。

(6)主串包含子串的串称为该子串的主串。

(7)模式匹配子串的定位运算又称为串的模式匹配,是一种求子串的第一个字符在主串中序号的运算。

被匹配的主串称为目标串,子串称为模式。

3.串的基本运算(1)求串长:LenStr(s)。

(2)串连接:ConcatStr(s1,s2) 。

(3)求子串:SubStr (s,i,len)。

(4)串比较:EqualStr (s1,s2)。

(5)子串查找:IndexStr (s,t),找子串t在主串s中首次出现的位置(也称模式匹配)。

(6)串插入:InsStr (s,t,i)。

(7)串删除:DelStr(s,i,len)。

4.串的存储(1)定长顺序存储。

(2)链接存储。

(3)串的堆分配存储。

5.2 典型习题分析【例1】下面关于串的的叙述中,哪一个是不正确的?()A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储分析:空串是不含任何字符的串,即空串的长度是零。

空格串是由空格组成的串,其长度等于空格的个数。

答案为B。

【例2】两个串相等的充分必要条件是( )。

A.两个串长度相等B.两个串有相同字符C.两个串长度相等且有相同字符D.以上结论均不正确分析:根据串相等定义,两个串是相等是指两个串的长度相等且对应字符都相等,故A、B、C均不正确,答案为D。

《数据结构及其应用》笔记含答案 第五章_树和二叉树

《数据结构及其应用》笔记含答案 第五章_树和二叉树

第5章树和二叉树一、填空题1、指向结点前驱和后继的指针称为线索。

二、判断题1、二叉树是树的特殊形式。

()2、完全二叉树中,若一个结点没有左孩子,则它必是叶子。

()3、对于有N个结点的二叉树,其高度为。

()4、满二叉树一定是完全二叉树,反之未必。

()5、完全二叉树可采用顺序存储结构实现存储,非完全二叉树则不能。

()6、若一个结点是某二叉树子树的中序遍历序列中的第一个结点,则它必是该子树的后序遍历序列中的第一个结点。

()7、不使用递归也可实现二叉树的先序、中序和后序遍历。

()8、先序遍历二叉树的序列中,任何结点的子树的所有结点不一定跟在该结点之后。

()9、赫夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。

()110、在赫夫曼编码中,出现频率相同的字符编码长度也一定相同。

()三、单项选择题1、把一棵树转换为二叉树后,这棵二叉树的形态是(A)。

A.唯一的B.有多种C.有多种,但根结点都没有左孩子D.有多种,但根结点都没有右孩子解释:因为二叉树有左孩子、右孩子之分,故一棵树转换为二叉树后,这棵二叉树的形态是唯一的。

2、由3个结点可以构造出多少种不同的二叉树?(D)A.2 B.3 C.4 D.5解释:五种情况如下:3、一棵完全二叉树上有1001个结点,其中叶子结点的个数是(D)。

A.250 B. 500 C.254 D.501解释:设度为0结点(叶子结点)个数为A,度为1的结点个数为B,度为2的结点个数为C,有A=C+1,A+B+C=1001,可得2C+B=1000,由完全二叉树的性质可得B=0或1,又因为C为整数,所以B=0,C=500,A=501,即有501个叶子结点。

4、一个具有1025个结点的二叉树的高h为(C)。

A.11 B.10 C.11至1025之间 D.10至1024之间解释:若每层仅有一个结点,则树高h为1025;且其最小树高为⎣log21025⎦ + 1=11,即h在11至1025之间。

第5章数据结构与算法习题与答案

第5章数据结构与算法习题与答案

第5章数据结构与算法习题与答案第五章习题(1)复习题1、试述数据和数据结构的概念及其区别。

数据是对客观事物的符号表⽰,是信息的载体;数据结构则是指互相之间存在着⼀种或多种关系的数据元素的集合。

(P113)2、列出算法的五个重要特征并对其进⾏说明。

算法具有以下五个重要的特征:有穷性:⼀个算法必须保证执⾏有限步之后结束。

确切性:算法的每⼀步骤必须有确切的定义。

输⼊:⼀个算法有0个或多个输⼊,以刻画运算对象的初始情况,所谓0个输⼊是指算法本⾝定除了初始条件。

输出:⼀个算法有⼀个或多个输出,以反映对输⼊数据加⼯后的结果。

没有输出的算法没有实际意义。

可⾏性:算法原则上能够精确地运⾏,⽽且⼈们⽤笔和纸做有限次运算后即可完成。

(P115)3、算法的优劣⽤什么来衡量?试述如何设计出优秀的算法。

时间复杂度空间复杂度(P117)4、线性和⾮线性结构各包含哪些种类的数据结构?线性结构和⾮线性结构各有什么特点?线性结构⽤于描述⼀对⼀的相互关系,即结构中元素之间只有最基本的联系,线性结构的特点是逻辑结构简单。

所谓⾮线性结构是指,在该结构中⾄少存在⼀个数据元素,有两个或两个以上的直接前驱(或直接后继)元素。

树型和图型结构就是其中⼗分重要的⾮线性结构,可以⽤来描述客观世界中⼴泛存在的层次结构和⽹状结构的关系。

(P118 P122)5、简述树与⼆叉树的区别;简述树与图的区别。

树⽤来描述层次结构,是⼀对多或多对⼀的关系;⼆叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由⼀个称为根(root)的元素及两个不相交的、被分别称为左⼦树和右⼦树的⼆叉树组成。

⼆叉树是有序的,即若将其左、右⼦树颠倒,就成为另⼀棵不同的⼆叉树。

图也称做⽹,是⼀种⽐树形结构更复杂的⾮线性结构。

在图中,任意两个节点之间都可能相关,即节点之间的邻接关系可以是任意的,图表⽰的多对多的关系。

(P121-P124)6、请举出遍历算法在实际中使⽤的例⼦。

数据结构答案第5章

数据结构答案第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【分析】根据前序遍历序列和后序遍历序列将该二叉树构造出来。

吉林省专升本数据结构习题及答案——第五章

吉林省专升本数据结构习题及答案——第五章

吉林省专升本考试数据结构分章习题及参考答案———选择题(第五章)1、一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )。

A、250B、500C、254D、5012、将一棵树t转换为孩子—兄弟链表表示的二叉树h,则t的后根序遍历是h 的A、前序遍历B、中序遍历C、后序遍历D、层序遍历3、采用邻接表存储的图,其深度优先遍历类似于二叉树的()。

A、中序遍历B、先序遍历C、后序遍历D、按层次遍历4、二叉树的第5层上最多含有结点数为()A、31B、16C、15D、325、某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E则前序序列是:A、E,G,F,A,C,D,BB、E,A,C,B,D,G,FC、E,A,G,C,F,B,DD、上面的都不对6、若森林F有15条边、25个结点,则F包含树的个数是( )。

A、8B、9C、10D、117、有权值分别为2,3,5,8,7,4的叶子结点生成一棵哈夫曼树,其带权路径长度为()A、36B、72C、96D、1208、任何一棵二叉树的叶子结点在前序、中序、后序遍历序列中的相对次序()A、肯定不发生改变B、肯定发生改变C、不能确定D、有时发生变化9、为5个使用频率不等的字符设计哈夫曼编码,不可能的方案是( ).A、 111,110,10,01,00B、000,001,010,011,1C、100,11,10,1,0D、001,000,01,11,1010、给定二叉树1(2(4,5(6,7)),3)。

设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。

若遍历后的结点序列为3,1,7,5,6,2,4则其遍历方式是( )A、LRNB、NRLC、RLND、RNL11、若以{4,5,6,7,8}作为权值构造哈夫曼树,则该树的带权路径长度为()。

A、67B、68C、69D、7012、深度为k的完全二又树至少有( )个结点。

A、2k-2+1B、2k-1C、2k-1D、2k-1-113、一个具有1025个结点的二叉树的高h为()A、11B、10C、11至1025之间D、10至1024之间14、设F是一个森林,B是由F变换得的二叉树。

数据结构第五章习题答案

数据结构第五章习题答案

1.二维数组A行下标i的范围从1到12,列下标j的范围从3到10,采用行序为主序存储,每个数据存储元素占用4个存储单元,该数组的首地址(既A[1][3]的地址)为1200,则A[6][5]的地址为(D)A.1400B.1404C.1372D.13682.有一个M*N的矩阵A,若采用行序为主序进行顺序存储,每个元素占用8个字节,则A ij (1≤i≤M,1≤i≤N)元素的相对字节地址(相对首元素地址而言)为(B)A.((i-1)*N+j)*8B.((i-1)*N+j-1)*8C.(i*N+j-1)*8D.((i-1)*N+j+1)*83.稀疏矩阵一般的压缩存储方法有两种,即(D)A.二维数组和三维数组B.三元组和散列C.散列和十字链表D.三元组和十字链表4.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点(B)A.正确B.错误5.广义表((a,b),c,d)的表头是(C),表尾是(D)。

A.aB.bC.(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.特殊矩阵和压缩矩阵哪一种压缩存储后会失去随机存取的功能?为什么?答:稀疏矩阵在进行压缩存储后会失去随机存取的功能,因为非零元素的位置没有办法确定。

《数据结构》第五章习题参考答案

《数据结构》第五章习题参考答案

《数据结构》第五章习题参考答案一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)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______个叶子结点。

数据结构第五章参考答案

数据结构第五章参考答案

习题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,则该二叉树结点的前序遍历序列为(___________),该二叉树对应的树林包括(___________)棵树。

数据结构第五章 查找 答案

数据结构第五章 查找 答案

数据结构与算法上机作业第五章查找一、选择题1、若构造一棵具有n个结点的二叉排序树,在最坏情况下,其高度不超过 B 。

A. n/2B. nC. (n+1)/2D. n+12、分别以下列序列构造二叉排序数(二叉查找树),与用其他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 2B. 4 2 5 3 1C. 4 5 2 1 3D. 4 2 3 1 54、在二叉平衡树中插入一个结点造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作 C 型调整使其平衡。

A. LLB. LRC. RLD. RR5、一棵高度为k的二叉平衡树,其每个非叶结点的平衡因子均为0,则该树共有 C 个结点。

A. 2k-1-1B. 2k-1+1C. 2k-1D. 2k+16、具有5层结点的平衡二叉树至少有 A 个结点。

A. 12B. 11C. 10D. 97、下面关于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 。

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

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

第五章习题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]的方法稍加改动,使算法只占用一个辅助向量空间。

数据结构(天津大学)知到章节答案智慧树2023年

数据结构(天津大学)知到章节答案智慧树2023年

数据结构(天津大学)知到章节测试答案智慧树2023年最新第一章测试1.数据的存储结构是指()参考答案:数据的逻辑结构在计算机中的表示2.算法的空间复杂度是指()参考答案:算法执行过程中所需要的存储空间3.下列叙述中正确的是()参考答案:一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率4.程序执行的效率与数据的存储结构密切相关。

参考答案:对5.算法计算量的大小称为计算的()参考答案:复杂性6.算法的优劣与算法描述语言无关,但与所用计算机有关。

参考答案:错7.抽象数据类型可通过固有的数据类型来表示和实现。

参考答案:对8.算法是指令的有限序列。

参考答案:对9.数据的不可分割的最小单位是数据元素。

参考答案:错第二章测试1.下述哪个是顺序存储结构的优点?()参考答案:存储密度大2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

参考答案:顺序表3.设线性表有n个元素,以下操作中在顺序表上实现比在链表上实现效率更高是()参考答案:输出第i(1≤i≤n)个元素的值4.在n个结点的线性表的顺序实现中,算法的时间复杂度为O(1)的操作是()。

参考答案:访问第i个结点和求第i个结点的直接前驱5.循环链表H尾结点p的特点是()。

参考答案:p->next==H6.向一个长度为n的顺序表中的第i个元素之前插入一个元素时,需要向后移动()个元素。

参考答案:n-i+17.在一个长度为n的顺序表中删除第i个元素时,需要向前移动()个元素。

参考答案:n-i8.链表的每个结点中都只包含一个指针。

参考答案:错9.链表的物理存储结构具有同链表一样的顺序。

参考答案:错10.当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

参考答案:错第三章测试1.对于栈操作数据的原则是()。

参考答案:后进先出2.队列的先进先出特征是指()。

参考答案:最后插入队列的元素总是最后被删除3.栈和队列的共同点是()。

数据结构与算法第5章课后答案

数据结构与算法第5章课后答案

page: 1The Home of jetmambo - 第 5 章树和二叉树第 5 章树和二叉树(1970-01-01) -第 5 章树和二叉树课后习题讲解1. 填空题⑴树是n(n&ge;0)结点的有限集合,在一棵非空树中,有()个根结点,其余的结点分成m (m>0)个()的集合,每个集合都是根结点的子树。

【解答】有且仅有一个,互不相交⑵树中某结点的子树的个数称为该结点的(),子树的根结点称为该结点的(),该结点称为其子树根结点的()。

【解答】度,孩子,双亲⑶一棵二叉树的第i(i&ge;1)层最多有()个结点;一棵有n(n&gt;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,则其后序遍历序列是()。

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

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

第五章数组与广义表一、假设有二维数组A6*8,每个元素用相邻的6个字节存储,存储器按字节编址。

已知A的起始存储位置(基地址)为1000。

计算:1、数组A的体积(即存储量);2、数组A的最后一个元素a57的第一个字节的地址;3、按行存储时,元素a14的第一个字节的地址;4、按列存储时,元素a47的第一个字节的地址;答案:1、(6*8)*6=2882、loc(a57)=1000+(5*8+7)*6=1282或=1000+(288-6)=12823、loc(a14)=1000+(1*8+4)*6=10724、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/2i2f2(j)=jc=-(n+1)九、已知A为稀疏矩阵,试从空间和时间角度比较采用两种不同的存储结构(二维数组和三元组表)完成∑aii运算的优缺点。

(对角线求和)解:1、二维数组For(i=1;i<=n;i++)S=s+a[i][i];时间复杂度:O(n)2、for(i=1;i<=m.tu;i++)If(a.data[k].i==a.data[k].j) s=s+a.data[k].value;时间复杂度:O(n2)二十一、当稀疏矩阵A和B均以三元组表作为存储结构时,试写出矩阵相加的算法,其结果存放在三元组表C中。

数据结构课后习题答案-完整版

数据结构课后习题答案-完整版

数据结构课后习题答案-完整版下面是《数据结构课后习题答案-完整版》的内容:---第一章:数组1. 题目:给定一个整数数组,判断是否存在两个元素之和等于目标值。

答案:使用双指针法,首先将数组排序,然后设置左指针指向数组头部,右指针指向数组尾部。

如果左指针和右指针指向的元素之和小于目标值,则左指针右移;如果大于目标值,则右指针左移;如果等于目标值,则找到了两个元素之和等于目标值的情况。

2. 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。

答案:使用哈希表,在遍历数组的过程中,将每个元素的值和下标存储在哈希表中。

遍历到当前元素时,检查目标值与当前元素的差值是否在哈希表中,如果存在,则找到了两个数的下标。

---第二章:链表1. 题目:给定一个链表,判断链表中是否存在环。

答案:使用快慢指针法,定义两个指针,一个指针每次向前移动一个节点,另一个指针每次向前移动两个节点。

如果存在环,则两个指针必定会相遇。

2. 题目:给定一个链表,删除链表的倒数第N个节点。

答案:使用双指针法,定义两个指针,一个指针先移动N个节点,然后两个指针同时向前移动,直到第一个指针到达链表尾部。

此时第二个指针指向的节点即为要删除的节点。

---第三章:栈和队列1. 题目:设计一个栈,使得可以在常数时间内获取栈中的最小元素。

答案:使用辅助栈来保存当前栈中的最小元素。

每次压栈操作时,将当前元素与辅助栈的栈顶元素比较,只有当前元素较小才将其压入辅助栈。

2. 题目:设计一个队列,使得可以在常数时间内获取队列中的最大元素。

答案:使用双端队列来保存当前队列中的最大值。

每次入队操作时,将当前元素与双端队列的末尾元素比较,只有当前元素较大才将其压入双端队列。

---第四章:树和二叉树1. 题目:给定一个二叉树,判断它是否是平衡二叉树。

答案:通过递归遍历二叉树的每个节点,计算每个节点的左子树高度和右子树高度的差值。

如果任意节点的差值大于1,则该二叉树不是平衡二叉树。

数据结构课后习题第五章

数据结构课后习题第五章

习题5一、选择题1.洗漱矩阵的一半压缩方法是( )。

A.二维数组 B.广义表 C.三元组表D.一维数组2. 设矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡nm n n a a a ...a ..........…1111是一个对称矩阵,为了节省空间,将其下三角部分按行有先存放在一维数组B 中。

对下三角矩阵中任一元素a ij (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+j3. 在稀疏矩阵的三元组表示法只能怪,每个三元组表示( )。

A. 矩阵中数据元素的行号和值 B. 矩阵中非零元素的值 C. 矩阵中非零元素的行号和值 D. 矩阵中非零元素的行号、列号和值4. 对稀疏矩阵进行压缩存储是为了( )。

A. 便于进行矩阵运算 B. 便于输入和输出 C. 节约存储空间 D.降低运算的时间复杂度5. 假设以行序列为主序存储二维数组A=array[1..100..,1..100],设每个数据元素占2B 的存储单元,基地址为10,则LOC[5,5]=( )。

A. 808 B. 818 C. 1010 D. 10206. 设有数组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+2257. 设有一个10阶的对称矩阵A ,采用压缩存储方式,以行序为主存储。

a 11为第一元素,其存储地址为1,每个元素占一个字节地址空间,则a 85的地址为( )。

A. 13 B. 33 C. 18 D. 408.广义表是线性表的推广,他们之间的区别在于( )。

A. 能否使用子表 B. 能否使用原子项 C. 表的长度 D. 是否能为空 9. 已知广义表:L=((x ,y ,z ),a ,(u ,t ,w )),从L 中取出原子项t 的运算是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构与算法上机作业第五章查找
一、选择题
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、有一个结点的关键字为3276012483,采用移位叠加法生成4位散列地址,则生成的地址为 B 。

A. 3482
B. 3583
C. 9018
D. 9019
二、填空题
1、在查找过程中有插入或删除元素操作的,称为动态查找。

2、一个无序序列可以通过构造一棵二叉排序树而变为一个有序序列,构造树的过程即为对无序序列进行排序的过程。

3、对于一棵二叉排序树,按中根方法遍历得出的结点序列是从小到大排列的。

4、对二叉排序树进行查找的方法是用待查找的值与根结点的键值进行比较,若比根结点的值小,则继续在左子树中查找。

5、A VL树为在构造二叉排序树时,为确保搜索的性能而保持树的平衡,保持平衡的方法为在构建AVL树时根据特定条件而进行LL, RR, LR, RL四种旋转操作,如对于下图的树,应该进行RL RR 旋转。

25
1932
2740 26新插入结点
25
1932
2740
45
新插入结点
6、在m阶一棵B-树中,若在某个结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是m-1 ;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是⎡m/2⎤ -1 。

7、127阶B-树中每个结点最多有126 个关键字;除根结点外所有非终端结点至少有棵子树;65阶B+树中,除根结点外所有非叶结点至少有33 个关键字,最多有65 棵子树
8、假设有k个关键字互为同义词(哈希值相同),若用线性探测再散列法把这k个关键字存入散列表中,至少要进行k(k-1)/2 次探测。

9、在散列排序法中,折叠法的哈希函数可分为移位法和分界法两种类型。

10、散列法的填充因子= 表中填入的记录数/ 哈希表的长度。

11、设散列函数H和关键字k1, k2,若k1不等于k2,而H(k1)=H(k2),则称这种现象为
冲突。

12、在哈希函数H(key)=key % p中,p一般应取不大于表长的质数或是不含20以下的质
因数的合数。

三、依次输入表(30, 15, 28, 20, 24, 10, 12, 68, 35, 50, 46, 55)中的元素,生成一棵二叉排序数,要求:
1、试画出生成之后的二叉排序树。

2、对该二叉排序数作中根遍历,写出遍历序列。

3、编程构建一个二叉排序数,并中根遍历验证上述结果。

四、二叉排序树如下图所示,分别画出:
1、删除关键字15以后的二叉树,并要求平均查找长度尽可能小。

2、在原二叉排序树(即没有删除15)上,插入关键字20
五、编写一个判别给定二叉树是否为二叉排序树的算法,假设二叉树是用左右链方式存储。

六、试画出从空树开始,有字符序列(t, d, e, s, u, g, b, j, a, k, r, i)构成的二叉平衡树,并为每一次平衡处理指明旋转类型。

七、假设一棵平衡二叉树的每个结点都标明了平衡因子b,试设计一个算法,利用平衡因子求平衡二叉树的高度。

八、设有三阶B-树(如下图所示),
1、画出依次插入18、33、97后的B-树
2、分别画出删除66、16、43后的B-树
九、给定一组记录,其关键字为字符。

各关键字插入顺序为C, S, M, T, A, E, P, U, X, K, G, B
1、给出从空树开始,顺序插入这些关键字后的3阶B+树,假设叶节点所能容纳最大关键码的数量为4。

2、分别给出在(1)建立的B+树上删除E、P、T后的3阶B+树
十、画出如下数据集合的Trie树:Amiot, Avenger, Avro, Heinkel, HellDivder, Macchi, Marauder, Mustang, SpitFire, Sykhoi。

1、对关键字实行从左到右一次一个字符采样
2、利用单字符采样,在上述数据上构造最少层数的Trie树。

十一、假定一个待散列存储的线性表为{32, 75, 29, 63, 48, 94, 25, 46, 18, 70},散列地址空间为HT[13],若采用除留余数法构造散列函数(假设p取11)和线性探测法(假设步长为3)处理冲突,试求出每一元素的散列地址,画出最后得到的散列表,并求出平均查找长度。

要求:
1、上述作业要求在单独完成;
2、完成后,于规定期限内提交到ftp服务器的相应目录中中,注意,在提交时将所编写的程序统一拷贝到一个Word文件中,文件名格式为“学号+姓名”。

相关文档
最新文档