哈工大 国家级精品课《数据结构与算法》
- 格式:pdf
- 大小:92.61 KB
- 文档页数:4
数据结构与算法数据结构与算法是北京大学于2018年02月26日首次在中国大学MOOC开设的慕课课程,是国家精品在线开放课程。
该课程授课教师为张铭、陈斌、卢宗青、刘云淮、赵海燕、宋国杰、黄骏、邹磊、王腾蛟。
据2021年2月中国大学MOOC官网显示,该课程已开课4次。
数据结构与算法课程内容包括数据结构与抽象数据类型、算法特性及分类、算法效率与度量、线性结构、顺序表、链表、栈与队列、栈与递归、递归转非递归、字符串的存储结构、字符串运算的算法实现、字符串的快速模式匹配、二叉树的抽象数据类型、二叉树的搜索、二叉树的存储结构、树与二叉树的等价转换、树的抽象数据类型及树的遍历、树的链式存储结构、树的父指针表示法、树的顺序存储和K叉树、图的概念和抽象数据类型、图的存储结构、图的遍历、内排序、检索等内容。
课程性质:课程背景计算机是现代社会中用于解决问题的重要工具,支撑这个工具高效运转的就是其后的各种系统程序、应用程序。
数据结构,是抽象的表示数据的方式;算法,则是计算的一系列有效、通用的步骤。
算法与数据结构是程序设计中相辅相成的两个方面,是计算机学科的重要基石。
课程定位数据结构与算法是介绍基本数据结构以及相关的经典算法,强调问题-数据-算法的抽象过程,关注数据结构与算法的时间空间效率,培养学生编写出高效程序从而解决实际问题的综合能力的一门课程。
适应对象数据结构与算法适合计算机以及相关理工专业的本科生学习。
对于具有C语言结构化程序设计基础的学生,该课程第0章补充了一些面向对象的基本内容。
课程简介:数据结构与算法围绕着“算法+数据结构=程序”的思路,以问题求解为导向进行学习,运用问题抽象、数据抽象、算法抽象来分析问题,应用适当的数据结构和算法来设计和实现相应的程序。
在求解实际问题方面,该课程会学习到通过权衡时空和其他资源开销,利用数据结构来组织数据、设计高效的算法、完成高质量的程序以满足错综复杂的实际应用需要。
课程所学到的内容会被利用到计算机科学后续的各个课程中,如操作系统、软件工程、数据库概论、编译技术、计算机图形学、人机交互等。
哈工大2009年春季学期数据结构与算法 试卷一、填空题(每空2分,共20分)1. 在 情况下,等长编码是最优前缀码。
2.设有两个算法在同一机器上运行,其执行时间分别为100n 2和2n ,要使前者快于后者,n 至少为 。
3.采用堆排序、快速排序、冒泡排序,对初态有序的表,最省时间的是_ 。
4. 设二叉树结点的先根序列为ABDECFGH ,中根序列为DEBAFCHG,则二叉树中叶结点是_________.5. 用下标从0开始的N 个元素的数组实现循环队列时,为实现下标变量m 加1后在数组有效下标范围内循环,可采用的表达式是m= 。
6. 由带权为3,9,4,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为 。
7. 对n 个记录的表进行选择排序,在最坏情况下所需要进行的关键字的比较次数为 。
8. 任意一个有n 个结点的二叉树,已知它有m 个叶结点,则度数为2的结点有 。
9. n 个顶点的连通图用邻接矩阵表示时,该矩阵至少有 个非零元素10. 举出两种磁带文件的分类方法: 。
二、选择题(每题1分,共10分)注意行为规范遵守考场纪律1.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是( )。
(A) 40,42,45,55,80,83(B) 42,40,45,80,85,88(C) 42,40,55,80,45,85(D) 42,40,45,85,55,802.数据的最小单位是( )。
(A) 数据项(B) 数据类型(C) 数据元素 (D) 数据变量3.关键路径是AOE网中( ) 。
A.从始点到终点的最短路径B.从始点到终点的最长路径C.从始点到终点的边数最多的路径D.从始点到终点的边数最少的路径4.下列说法正确的是()。
A.最小生成树也是哈夫曼树B.最小生成树是唯一的C.对于n 个顶点的连通无向图,Prim算法的时间复杂性为O(n2)D.Kruskal 算法比Prim算法更适合边稠密的图5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是( )。
介绍哈工大最好的书
哈尔滨工业大学作为国内知名高校,有很多优秀的教材和参考书,对于不同专业和课程都有相应的优秀教材。
例如,对于计算机专业考研,可以参考《数据结构与算法(第4版)》廖明宏等编著,这本书是高等教育出版社2007年11月出版的,被认为是计算机学科考研的经典教材之一。
另外,哈尔滨工业大学的思政方向的考研,可以参考《马克思主义基本原理》、《思想道德与法治》、《中国近现代史纲要》和《毛泽东思想和中国特色社会主义理论体系概论》等书,这些都是马克思主义理论研究和建设工程重点教材,由高等教育出版社2021年出版。
以上信息仅供参考,建议根据自身需求和实际情况选择适合自己的教材和参考书。
哈工大计算机专业考研科目哈尔滨工业大学(以下简称哈工大)计算机专业是国内一流的计算机科学与技术学科之一。
考研是很多计算机专业毕业生继续深造的重要途径。
因此,了解哈工大计算机专业考研科目是考研准备的必备知识。
在哈工大计算机专业考研科目中,主要包括以下内容:一、数据结构与算法分析数据结构与算法分析是计算机专业中最基础、最重要的科目之一。
在考研中,数据结构与算法分析的知识点包括线性表、树结构、图结构等基本数据结构的实现及其算法分析,以及常见排序算法、查找算法等。
掌握数据结构与算法分析的知识对于计算机专业的学生来说是非常重要的。
二、操作系统与网络操作系统与网络是计算机系统的核心技术之一。
在哈工大计算机专业考研科目中,操作系统与网络是一个重要的考点。
考生需要了解操作系统的基本原理、进程管理、存储管理、文件系统等内容,以及网络的基本原理、协议、网络安全等知识。
掌握操作系统与网络的知识,可以帮助考生更好地理解计算机系统的运行机制。
三、数据库与数据挖掘数据库与数据挖掘是计算机专业中的重要应用方向之一。
在哈工大计算机专业考研科目中,数据库与数据挖掘是一个重要的考点。
考生需要了解数据库的基本概念、关系模型、SQL语言等内容,以及数据挖掘的基本原理、数据预处理、分类与聚类等知识。
掌握数据库与数据挖掘的知识,可以帮助考生在实际工作中更好地应用数据库与数据挖掘技术。
四、软件工程与项目管理软件工程与项目管理是计算机专业中重要的实践能力培养科目之一。
在哈工大计算机专业考研科目中,软件工程与项目管理是一个重要的考点。
考生需要了解软件工程的基本原理、软件生命周期、需求分析与规格说明等内容,以及项目管理的基本概念、项目组织与管理、项目风险管理等知识。
掌握软件工程与项目管理的知识,可以帮助考生在实践中更好地开展软件项目的设计与管理工作。
总结起来,哈工大计算机专业考研科目涵盖了数据结构与算法分析、操作系统与网络、数据库与数据挖掘以及软件工程与项目管理等重要内容。
第4章图结构及其应用算法数据结构与算法Data Structures andgAlgorithms张岩海量数据计算研究中心哈工大计算机科学与技术学院第4章图结构及其应用算法2016/11/20Slide 4-2——图论欧拉欧拉1707年出生在瑞士的巴塞尔城,19岁开始发表论文,直到76岁。
几乎每一个数学领域都可以表论文直到76岁几乎每个数学领域都可以看到欧拉的名字,从初等几何的欧拉线,多面体的欧拉定理,立体解析几何的欧拉变换公式,四次方程的欧拉解法到数论中的欧拉函数,微分方程的欧拉方程,级数论的欧拉常数,变分学的欧拉方程,复变函数的欧拉公式等等。
据统计他那不倦的一生,共写下了886本书籍和论文,其中分析、代数、数论占40%,几何占18%,物理和力学占28%,天文学占11%,弹道学、航海学、力学占28%天文学占11%弹道学航海学建筑学等占3%。
1733年,年仅26岁的欧拉担任了彼得堡科学院学教授年到林担任科了彼得堡科学院数学教授。
1741年到柏林担任科学院物理数学所所长,直到1766年,重回彼得堡,没有多久,完全失明。
欧拉在数学上的建树很多,对著名的哥尼斯堡七桥问题的解答开创了图论的研究。
哥尼斯堡七桥问题能否从某个地方出发,穿过所有的桥仅一次后再回到出发点?学习目标图结构是一种非线性结构,反映了数据对象之间的任意关系,在计算机科学、数学和工程中有着非常广泛的应用。
了解图的定义及相关的术语,掌握图的逻辑结构及其特点;了解图的存储方法,重点掌握图的邻接矩阵和邻接表存储结构;掌握图的遍历方法,重点掌握图的遍历算法的实现;了解图的应用,重点掌握最小生成树、双连通性、强连通性、最短路径、拓扑排序和关键路径算法的基本思想、算法原理和实现过程。
本章主要内容4.1 图的基本概念4.2 图的存储结构4.3 图的遍历(搜索)4.4 最小生成树算法4.5 双连通性算法4.5双连通性算法4.6 强连通性算法4.7最短路径算法4.7 最短路径算法4.8 拓扑排序算法4.9 关键路径算法本章小结本章的知识点结构基本的数据结构(ADT)图无向图有向图加权图网络图(无向图、有向图;加权图----网络)知识点结构定义及相关术语逻辑结构及其特征ADT定义A逻辑结构静态的结构基本操作(算法)存储结构(描述)ADT基本动态的操作存储结构特点存储结构的定义ADT实现数据结构存储结构静态的结构操作(算法)实现算法的性能应用:最小生成树最短路径拓扑排序和关键路径动态的操作,,图的搜索(遍历)算法是有关图问题的重要核心算法!4.1基本定义4.1定义1 图(Graph)图是由顶点(vertex)的有穷非空集合和顶点之间边(edge)的集合组成的一种数据结构,通常表示为:G = (V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。
本科生课程大纲课程属性:公共基础/通识教育/学科基础/专业知识/工作技能,课程性质:必修、选修一、课程介绍1.课程描述:数据结构与算法分析是学习利用计算机语言编写质量更好的程序以及软件的一门课程,是提高计算机编程水平的必由之路,为日后学习相关课程打下一个坚实的基础。
本课程针对低年级地球信息科学与技术专业和勘查技术与工程专业本科生学生开设,课程主要内容包括:数据结构及其算法,文件读写,查找和排序算法等。
通过课程学习,要求学生能够掌握计算机存储(包括内存和外存)数据的基本方法和常用模式以及其算法,提高编写程序、调试程序的能力,课程结束后能够完成较复杂程序的设计和编制。
2.设计思路:本课程引导低年级地球信息科学与技术专业和勘查技术与工程专业学生掌握利用计算机语言编写实用可靠的程序的基础理论和实际操作方法,提升自身的科研和工作技能。
课程内容的选取基于学生掌握了一定的计算机语言知识。
课程内容分为四个模块:数据结构介绍;常用的数据结构及其算法;文件读写;查找和排序算法。
这三个方面相互关联,互为补充,覆盖了计算机数据存储、管理和处理等的主要模式和方法。
3. 课程与其他课程的关系:- 1 -本课程需要本科生在完成低年级阶段的计算机语言的基础上开设。
先修课程:《C 程序设计》。
二、课程目标本课程目标是为低年级地球信息科学与技术专业和勘查技术与工程专业学生提供一个深入学习计算机编程的平台,引导并培养学生使用计算机语言来描述、管理和处理数据的能力,提高计算机编程水平。
到课程结束时,学生应能:(1)熟练掌握常用的计算机数据在内存中存储的方法及其常用算法;(2)掌握文件的读写操作,合理的利用文件存储数据;(3)掌握查找和排序常用的算法;(4)掌握如何编制可靠的程序以及程序调试的技巧。
三、学习要求要完成所有的课程任务,学生必须:(1)按时上课,上课认真听讲,积极参与课堂讨论。
(2)按时完成上机练习,对地质数据进行分析和处理,提交正式的上机报告。
2022年哈尔滨工程大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题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、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()。
A.60B.66C.18000D.333、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表4、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储5、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)6、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)7、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。
计算机科学与技术专业本科生培养方案一、培养目标在可持续发展教育观的指导下,倡导“研究型、个性化、精英式”人才培养理念,培养适应21世纪社会主义现代化建设需要,德、智、体等全面发展,掌握数学与自然科学基础知识以及计算机、网络与信息系统相关的基本理论、基本知识、基本技能和基本方法,具有较强的专业能力和良好的综合素质,具备抽象思维、逻辑思维能力和系统观,具有创新精神和实践能力的高级复合型人才。
毕业后可在科研院所、企事业单位和行政管理部门从事计算机方面的科学研究、计算机系统设计、技术开发与应用等工作;有相当一部分学生可以继续攻读计算机科学与技术学科及相关学科的硕士学位。
二、培养要求计算机科学与技术专业本科毕业生应具有如下基本素质:1.社会素质:掌握马列主义、毛泽东思想与中国特色社会主义基本理论。
爱国敬业,具有科学的世界观、人生观,具有团队合作精神,自觉遵守社会公德和职业道德,具有诚信意识和宽容的心态。
2.研究素质:具有良好的科学思维和科学态度,对未知世界有强烈的好奇心和研究兴趣。
3.个性素质:培养协同意识,塑造利他精神,健全人格;挖掘自己的潜力和爱好,对待事物有独立见解;具有理性批判、自主学习和终身学习的意识和习惯。
4.领袖素质:有高度的历史和社会责任感,有一定的领导意识,有国际视野及跨文化交流、竞争与合作能力。
5.工程素质:具有工程观念,能用工程的思想与方法分析和解决实际问题。
6.人文素质:具有一定的文学社会科学素质、职业道德和心理素质、社会责任感等,具有方针、政策、法律、法规、经济、管理等方面的素养。
7.身心素质:掌握体育运动的一般知识和基本方法,养成良好的体育锻炼习惯,具有乐观向上的生活态度,掌握调节心态的方式和方法,有较强的抗挫折能力。
计算机科学与技术专业本科毕业生应具有如下基本能力:1.计算思维能力主要包括形式化、模型化描述和抽象思维与逻辑思维能力。
2.算法设计与分析能力针对具体问题设计有效的求解算法,并能分析该算法的时空复杂性。
郑州科技学院算法与数据结构课程设计题目学生成绩管理系统学生姓名敖荣成专业班级 09级计科一班学号*********所在系信息科学与工程系指导教师王玉萍完成时间年月日目录第1章课程设计的目的与要求 (2)1.1 课程设计目的 (2)1.2 课程设计的实验环境 (2)1.3 课程设计的预备知识 (2)1.4 课程设计要求 (2)第2章课程设计内容 (3)2.1 需求分析 (3)2.2 分析和设计(页面和数据库) (4)2.3 关键技术和说明 (15)2.4待改进的部分说明 (16)第3章课程设计总结 (17)参考资料 (18)第1章课程设计的目的与要求1.1 课程设计目的《算法与数据结构》是计算机相关专业的选修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《算法与数据结构》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2 课程设计的实验环境硬件要求能运行Windows 2000操作系统的微机系统。
JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE、TOMCAT等开发工具。
1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。
1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JSP网站设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。
2022年哈尔滨师范大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串B.树C.广义表D.栈2、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()。
A.60B.66C.18000D.333、连续存储设计时,存储单元的地址()。
A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续4、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。
A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都可能要修改D.队头、队尾指针都要修改5、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V76、下列叙述中,不符合m阶B树定义要求的是()。
A.根结点最多有m棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。
下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ8、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。
哈尔滨⼯业⼤学数据结构与算法历年考题汇总[期末] 2005数据结构与算法试卷试卷类型: 期末试卷年份: 05授课教师: 廖明宏有⽆答案: ⽆答案哈⼯⼤2005年春季学期数据结构与算法试卷⼀.填空题(每空1分,共10分)1.假定对线性表(38,25,74,52,48)进⾏散列存储,采⽤H(K)=K %7作为散列函数,若分别采⽤线性探查法和链接法处理冲突,则对各⾃散列表进⾏查找的平均查找长度分别为_______和________。
2.假定⼀组记录的排序码为(46,79,56,38,40,80),对其进⾏归并排序的过程中,第⼆趟归并后的结果为________________。
3.在堆排序的过程中,对任⼀分⽀结点进⾏调整运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
4.有向图的邻接矩阵表⽰法中某⼀⾏⾮0元素的个数代表该顶点的,某⼀列⾮0元素的个数是该顶点的。
5.对于下⾯的带权图G3,若从顶点v0出发,则按照普⾥姆(Prim)算法⽣成的最⼩⽣成树中,依次得到的各条边为______________。
6.由带权为3,9,6,2,5的5个叶⼦结点构成⼀棵哈夫曼树,则带权路径长度为7.由三个结点构成的⼆叉树,共有种不同结构。
⼆.选择题(每题1分,共10分)1.快速分类在的情况下不利于发挥其长处.A. 待分类的数据量太⼤B. 待分类的数据相同值过多C. 待分类的数据已基本有序D. 待分类的数据值差过⼤.2.两路归并排序中,归并的趟数是。
A. O(n)B. O(log2n)C. O(nlog2n)D. O(n2)注意⾏为规范遵守考场纪律第1页,共6页3.对外部分类的K路平衡归并,采⽤败者树时,归并的效率与K 。
A. 有关B.⽆关C.不能确定D. 都不对4.对于⼀个索引顺序⽂件,索引表中的每个索引项对应主⽂件中的。
A. ⼀条记录B.多条记录C. 所有记录D.三条以上记录5..若线性表采⽤顺序存储结构,每个元素占⽤4个存储单元,第⼀个元素的存储地址为100,则第12个元素的存储地址时。
第四章 树与二元树
填空题
1.假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为 ① ,树
高度为 ② ,终端结点的个数为 ③ ,单分支节点的个数为 ④ ,双分支结点的个数为 ⑤ ,三分支结点的个数为 ⑥ ,C结点的双亲结点为 ⑦ ,其孩子结点
⑧ 和 ⑨ 结。
该树先根、中根和后根遍历序列分别为 ⑽ 、⑾ 和⑿。
该树对应的
二元树为 ⒀ ,此二元树的先根、中根和后根遍历顺序序列分别为⒁、⒂和⒃。
2.由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为 ① ,
该最优二元树共有 ② 个结点,度数为0、1、2的结点的个数分别为③ ,④ 和 ⑤ 个。
3.已知字符集{A、B、C、D、E} 的字符出现的概率分别为{ 3/25 ,9/25,6/25,2/25,
5/25}。
画出该字符集的Huffman编码树② , 字符A、B、C、D、E的编码分别为 ③,
④ ,⑤ ,⑥ ,⑦ ,该字符集的Huffman编码的平均编码长度为⑧ 。
若采用二进制
等长编码方案,该字符集的编码长度为 ⑨ 。
读该字符集而言,Huffman编码比等长编码平均压缩了 ⑽ %。
4.对于一棵具有n个结点的二元树,当进行链接存储时,其左右链存储结构中的指针域的
总数为 ①个,其中,② 个用于链接孩子结点, ③个空闲着。
5.在一棵二叉树中,度为0的结点个数为n0,度为1的结点个数为n1,度为2的结点个
数为n2,则有n0= ① 。
6.由a,b,c 三个结点构成的二叉树,共有 ① 种不同结构。
7.一棵高度为K的完全二叉树的结点总数最少为 ① 个,最多为 ② 个;第K层最多有 ③
个结点,最少有 ④ 个结点。
选择题
8.假定在一棵二元树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )
个。
A.15 B.16 C.17 D.47
9.在一棵二叉树上第5层的结点数最多为( ) 。
A.8 B.16 C.15 D.32
10.用顺序存储的方式将完全二叉树中的所有结点逐层存放在数组R[ 1…n]中,结点R[i]
若有子树,则左子树是结点( )。
A.R[2i+1] B.R[2i] C.R[i/2] D.R[2i-l]
11.用顺序存储的方式将完全二叉树中的所有结点逐层存放在数组R[ 1…n]中,结点R[i]
若有右子树,则 i 应满足的条件是( )。
A.2i+1 <= n B.2i <= n C.n/2<= i D.2i-l <= n
12.在一棵高度为k的二叉树中,最少含有( )个结点。
A.2k-1 B.2k-l C.2k-1 D.k
13.在一棵高度为k的二叉树中,最多含有( )个结点。
A.2k-1 B.2k-l C.2k-1 D.k
14.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序( )。
A.发生改变 B.不发生改变 C.不能确定 D.以上都不对
15.用线索二叉树是一种( )结构。
A.逻辑 B.逻辑和存储 C.物理 D.线性
16.下述编码哪一组是前缀码?
A.{00,01,10,11}
B.{0,1,00,1l}
C.{0,10, 110,1l}
判断题
17.树的父链表示就是用数组表示树的村存储结构.
18.对给定的字符集以及各字符出现的概率,该字符集的哈夫曼编码是唯一的.
19.完全二元树中,若某个结点没有左儿子,则该结点一定是叶结点.
20.二元树按某种遍历顺序线索化后,任何一个结点均有指向其在该种遍历顺序下的前驱和
后继的线索.
21.一棵树转换为二元树,该二元树的根结点一定没有右子树.
22.二元树就是任何结点的杜都不大于2的树.
23.任何二元树都唯一对应一个森林,反之亦然.
简要回答下列问题
24.一个高度为h的完全二元树,如果按层次顺序(同层自左至右)从1开始对全部结点编号,
问:
(1)各层的结点数目是多少?
(2)编号为i的结点的双亲结点(若存在)的编号是多少?
(3)编号为i的结点的左孩子结点(若存在)的编号是多少?
(4)编号为i的结点的左孩子结点(若存在)的编号是多少?
(5)编号为i的结点有右兄弟的条件是什么,其右兄弟的编号是多少?
(6)编号为i的结点有右兄弟的条件是什么,其右兄弟的编号是多少?
25.设二叉树包含的结点数为1,3,7,2,12。
(1)画出两棵高度最大的二叉树。
(2)画出两棵完全二叉树,要求每个双亲结点的值大于其孩子结点的值。
26.试找出分别满足下面条件的所有二叉树:
(1)前序序列和中序序列相同; (2)中序序列和后序序列相同;
(3)前序序列和后序序列相同; (4)前序、中序和后序序列相同。
27.若二叉树中各结点的值均不相同,则由二叉树的前序序列和中序序列,或由其后序序列
和中序序列均能惟一地确定一棵二叉树,但由前序序列和后序序列却不一定能惟一地确定一棵二叉树。
(1)己知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和GDHBAECIF,请画出此二叉树。
(2)已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG和DECBHGFA。
请画出该二叉树。
(3)已知两棵二叉树的前序序列和后序序列均为AB和BA,请画出这两棵不同的二叉树。
28.对下图所示二元树:
(1)写出该二叉树的前序、中序和后序序列;
(2)画出中该二叉树的顺序存储结构、左右链存储结构和带头结点的中序线索存储结构。
29.假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在
电文中出现的概率分别为{0.07 , 0.19 , 0.02 , 0.06 , 0.32,0.03,0.21 , 0.10}。
(1)为这8个字母设计哈夫曼编码。
(2)若用三位二进制数(0-7)对这个8个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?它使电文总长平均压缩多少?
算法设计 注意:要求写出算法的基本思想、存储结构的定义和算法
30.求中序线索二元树中结点p 的中序顺序前驱结点$p的算法。
31.求中序线索二元树中结点p 的先序顺序后继结点p*的算法。
32.分别写出交换二元树各个结点左右儿子的递归算法和非递归算法。
33.以左右链表示法为存储结构,分别写出求二元树结点总数及叶子总数的算法。
34.以左右链表示法为存储结构,写出对二元树进行先根遍历的非递归算法。
35.以左右链表示法为存储结构,写出对二元树进行中根遍历的非递归算法。
36.以左右链表示法为存储结构,写出对二元树进行后根遍历的非递归算法。
37.写出在二元树中插入一个结点成为指定结点左儿子的算法。