复旦大学软件工程考研(MSE)数据结构考研冲刺

合集下载

2017年复旦大学085212软件工程考研经验-新祥旭考研辅导班

2017年复旦大学085212软件工程考研经验-新祥旭考研辅导班

2015年复旦大学085212软件工程考研专业目录及考试科目软件学院专业代码085212 专业名称(专业学位)软件工程招生人数10研究方向01 软件工程02 密码与信息安全03 网络多媒体04 系统软件05 电子商务与电子政务考试科目①101思想政治理论②204英语二③301数学一④408计算机学科专业基础综合复试科目计算机综合知识考试方式面试同等学力加试科目数据结构考试方式笔试计算机系统基础考试方式笔试复试成绩占入学考试总成绩权重50%备注 1.外语口语(含听力)为复试必考科目,思想政治品德、思维表达能力等也均为复试必须考核项目。

学习方法解读(一)参考书的阅读方法1.了解课本基本内容,对知识体系有初步了解,建议从5月前后就要进行专业课基础知识的复习。

首先要将北京航空航天大学电子科学与技术专业的指定教材和参考书大致复习一遍,对专业课的总体知识框架有一个大概的了解,然后根据自己的具体情况制定一个全年的复习规划2.对课本知识进行总结,准确把握复习重点,理清复习思路,后章节联系不强,因此需要对知识点进行梳理,对课本题型进行分类。

3.将自己在学习过程中产生的问题记录下来,并用红笔标记,着重去理解那些易考而对自己来说比较难懂的知识,尽可能把所有的有问题知识要点都能够及时记录并在之后反复进行理解。

(二)学习笔记的整理方法1.在仔细看书的同时应开始做笔记,笔记在刚开始的时候可能会影响看书的速度,但是随着时间的发展,会发现笔记对于整理思路和理解课本的内容都很有好处。

2.做笔记的方法不是简单地把书上的内容抄到笔记本上,而是把书上的内容整理成为一个个小问题,按照题型来进行归纳总结。

笔记应着重将自己不是非常明白的地方标记出来,通过多做题对知识点进行梳理总结,对题型归类。

(三)真题的使用方法认真分析历年试题,做好总结,对于考生明确复习方向,确定复习范围和重点,做好应试准备都具有十分重要的作用。

对于理工科的学生来说,总结真题中高分值题型是非常重要的,因为一个大题可能会关乎你在初试中是安全通过还是被刷,同时也不能放弃分值较小的题型。

复旦大学计算机专业知识(数据结构、计算机网络、操作系统)考研真题试题2018年(回忆版)

复旦大学计算机专业知识(数据结构、计算机网络、操作系统)考研真题试题2018年(回忆版)

2018年复旦大学硕士研究生入学考试试题960回忆版(注意:所有的阿拉伯数字标号不是确切题号,仅作为分隔题目使用)数据结构部分一、填空题(一空2分)1、三对角矩阵元素地址的计算:求三对角矩阵(行优先存储)A[1...100,1...100]中的第66行第65列元素在一维数组B[1...258]中的位置;2、考察一个字符序列的KMP失效序列;3、顺序队列假溢出判断条件,队列存在[0....m-1]的数组中(front初始为-1);4、度为K的树,1个n1,2个n2...k个nk,求叶节点个数;5、线索二叉树(前序、中序、后序都要懂,才能根据题目做出判断);根结点右子树的最左的无左子树结点的前驱是根结点左子树最右无右子树的结点,问这棵树不可能是一颗________序线索化二叉树;6、AVL树RL型旋转(其它三种也得会);7、哈希表n个同义词冲突用线性探测法,求总的查找和比较次数;8、快速排序,堆排序,归并排序的空间复杂度从优到劣依次是_____;9、n个结点的有向图,图是连通的,那么图中至少有多少条边;10、对邻接矩阵存储的图,BFS的时间复杂度;二、简答题1、两个字符串S1,S2的长度分别为m(主串),n(子串),利用KMP算法求出最大的公共序列;推导复杂度(4分);2、给段代码让判断是否可以正确的得到一个带权无向图的最小生成树(破圈法);3、迪杰斯特拉算法填空;(一空2分,共5个空10分);4、装填因子0.75,10个关键字,冲突后用链地址法处理,用除留余数法自己构造哈希函数,画哈希表,并计算查找成功和不成功时的平均查找长度;5、AVL树本来平衡,然后查找K失败,插入K后一定会使得树高增加吗?为什么?6、n个关键字,只要求得到排序后的前k(n>>k)个最小值,问在希尔排序,快速排序,插入排序、堆排序....这些排序算法中选哪个好,为什么;给定一个序列,只要排序后的前两个数,用你之前选择的排序算法计算总的比较次数;三、算法设计题(每题15分)1、在AVL树中,设计一个用非递归的方法从大到小输出所有关键值不小于给定值x的结点信息,代码要给出注释,说明算法思想。

复旦大学软件工程考研[MSE]数据结构复习资料全

复旦大学软件工程考研[MSE]数据结构复习资料全
2j+1
证明
完全树的数组形式存储
完全树的数组形式存储算法
将其编号为i的结点元素存储在一维数组下标为i-1 的分量中
例题
已知数组[20,30,19,87,30,40]表示一棵完全二 叉树,请画出该树。
练习答案
树的遍历
树的遍历
按某种搜索路径巡访树中每个结点,使每个结点均 被访问一次仅且一次
栈的基本概念和性质
栈:
栈是限定仅在表尾进行插入和删除操作的线性表 后进先出特性(LIFO) 栈顶、栈底、出栈、入栈
例题
设有一个栈S,元素S1, S2, S3, S4, S5, S6依 次进栈,如果6个元素的出栈顺序为S2, S3, S4, S6, S5, S1,则栈的容量至少应为多少?
树的基本概念和术语
树:
是n(n≥0)个结点的有限集 在任意一棵非空树中:
1. 有且仅有一个特定的称为根的结点 2. 当n>1时,其余结点可以分为m(m>0)个互不相交的有
限集,其中每个集合本身又是一棵树,并且称为根的子 树
树属于层次结构数据结构
树的基本概念和术语
节点
标签
父节点、子节点、兄弟 节点、祖先节点、子孙 节点
将算法3.1中8换成d
例题
十进制数1167等于八进制数——?
答案: 2217 思路:
计算方法:除余倒排法 验证方法:指数相加法
习题
十进制数1167等于七进制数——?
栈的应用
表达式求值:
中缀表达式转后缀表达式
后缀表达式求值
三种表达式:
前缀表达式
+ab
例题答案
树的遍历

复旦大学软件工程考研(MSE)数据结构复习资料共251页文档

复旦大学软件工程考研(MSE)数据结构复习资料共251页文档

66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭
复旦大学软件工程考研(MSE)数据结 构复习资料
51、没有哪个社会可以制订一部永远 适用的 宪法, 甚至一 条永远 适用的 法律。 ——杰 斐逊 52、法律源于人的自卫本能。——英 格索尔
53、人们通常会发现,法律就是这样 一种的 网,触 犯法律 的人, 小的可 以穿网 而过, 大的可 以破网 而出, 只有中 等的才 会坠入 网中。 ——申 斯通 54、法律就是法律它是一座雄伟的大 夏,庇 护着我 们大家 ;它的 每一块 砖石都 垒在另 一块砖 石上。 ——高 尔斯华 绥 55、今天的法律未必明天仍是法律

数据结构模拟考研冲刺三套卷

数据结构模拟考研冲刺三套卷

第一部分1.在一个单链表中,已知指针p 指向其中的某个结点,若在该结点前插入一个由指针s 指向的结点,则需执行()。

A.s->next = p->next; p->next = s; B.p->next = s; s->next = p;C.r = p->next; p->next = s; s->next = r; D.仅靠已知条件无法实现2.设顺序表长度为n,从表中删除元素的概率相等。

则在平均情况下,从表中删除一个元素需要移动的元素个数是()。

A.(n1)/2 B.n/2 C.n(n 1)/2 D.n(n + 1)/23.在一个具有n 个单元的顺序栈中,假定以高端(即第n1 单元)作为栈底,以top 为栈顶指针,则当作出栈运算时,top 变化为()。

A.top 不变B.top = 0 C.top-- D.top ++4.若一个栈以向量V[n]存储,设栈空时,栈顶指针top 为n1,则下面x 进栈的正确操作是()。

A.top = top + 1;V[top] = x B.V[top] = x;top = top + 1C.top = top 1;V[top] = x D.V[top] = x;top = top 15.经过以下栈运算后,x 的值是()。

InitStack(s); Push(s, a); Push(s, b);Pop(s, x); Push(s, c); Pop(s, x); GetTop(s, x);A. a B.b C.c D.d6.若一棵二叉树有126 个节点,在第7 层(根结点在第1 层)的结点个数至多有()。

A.32 B.64 C.63 D.不存在第7 层7.具有n 个顶点的有向图的边最多有()。

A.n B.n(n1) C.n(n+1) D.n8.设连通图G 的顶点数为n,则G 的生成树的边数为()。

A.n B.n1 C.2n D.2n19.散列查找中k 个关键字具有同一哈希值,若用线性探测法将这k 个关键字对应的记录存入哈希表中,至少要进行()次探测。

复旦大学计算机专业考研经验

复旦大学计算机专业考研经验

本科华科电信,12年考上交电子系失败收场,之后找工作到某运营商,在工作期间跨考复旦大学计算机专业硕士成功录取,初试359,复旦计算机专硕考数学一专业课408 英语二政治,各科分数分别是111 111 75 62,初试成绩至少是专硕前五,初试和学硕的区别就是英语。

自觉得我的考研路有点特别,但是两次考研的经历有些感悟,希望和大家分享,希望对大家有启发。

一、是否考研是否决定考研需要根据自己的具体情况,想好自己要走的路。

如果是单纯想多学点东西,想进入IT行业,能入行就可以考虑直接工作了,工作中学到实用的东西绝对比读研多。

如果要搞学术,优先考虑出国,其次是国内读研读博。

如果是要进入体制内或其他对学历有硬性要求的地方,一些学历可以转化为职称的地方,那就刷学历吧。

如果想去大型IT公司又绝对没实力想在学校继续深造的可以考虑考研。

还有学历情结、名校情结等等原因。

我的情况是大四的考研失利导致错失找工作的最佳时期,进入运营商做后台,对工作不满想通过考研换专业换行业,提升自己专业能力的,其实最佳选择或许是本科找份合适的工作。

好了,先思考一下是否要考研,如果你决定考研了再往下看。

二、考研专业本科电子信息工程跨考计算机。

本身对电信的核心专业课就没有感觉。

第一次的考研失利及在运营商的工作经历让我对通信失去兴趣,当前互联网行业发展迅速,自身对计算机也比较兴趣,决定考研计算机。

总之,是要根据自己的兴趣和能力等具体情况选择。

PS.个人觉得当前最好的行业是金融,工科跨考金融的同学都令我佩服不已。

三、学硕专硕国家政策上是希望学硕做科研,专硕搞工程项目,实际中现在学硕和专硕的区别越来越小,实际最大的区别就是“钱”和“时间”!就是专硕学制短、奖学金少。

一些学校的某些专业已经一视同仁了,具体情况看学校的专业。

大趋势是学硕和专硕的待遇趋于一致,近些年但是一直在变化。

复旦计算机学硕3年,专硕2.5年,专硕奖学金少。

考学硕过专硕线科研调剂到专硕。

复旦MSE复习资料软件工程(SE03软件设计2011)

复旦MSE复习资料软件工程(SE03软件设计2011)
• 在设计软件结构时应追求尽可能松散的耦 合。
1.耦合
耦合有以下5类:
① 数据耦合:模块间通过参数传递基本类型的数据,称 为数据耦合。
② 标记耦合:模块间通过参数传递复杂的内部数据结构, 称为标记耦合。此数据结构的变化将使相关的模块发 生变化。
③ 控制耦合:一个模块在界面上传递一个信号(如开关 值、标志量等)控制另一个模块,接收信号的模块的 动作根据信号值进行调整,称为控制耦合。
– 模块之间相互调用时,传递的参数最好只有一个,最 多不超过四个。
– 在设计模块时尽量做到把模块之间的连接限制到最少, 模块环境的任何变化,都不应引起模块内部发生改变。
2.内聚
• 一个模块内各个元素彼此结合的紧密程度 用内聚来度量。
• 理想的模块只完成一个功能,模块设计的 目标之一是尽可能高的内聚。
• 模块的作用域与控制域 – 模块的作用域是指模块中判定的影响范围。 – 模块的控制域是指模块本身及其直接或间接调用的模块。
模块化
• 模块化(Modularization)是把系统分割 成能完成独立功能的模块,明确规定各模 块及其输入输出规格,使模块的界面不会 产生任何混乱。
• 在软件工程中,模块化是大型软件设计的 基本策略。在软件系统模块化时,最重要 的原理是模块独立性,而模块独立性要求 模块之间低耦合和模块内部高内聚。
软件设计概述
• 概要设计:将软件需求转化为数据结构和软件的系统结 构。概要设计只是描绘出软件的总体框架,根据功能、 性能需求和数据需求导出软件的数据结构和系统结构。
• 概括地说,概要设计进行数据设计/数据库设计和系统 体系结构设计。
• 概要设计主要完成以下任务: • 制定规范; • 软件系统结构的总体设计; • 数据库设计; • 概要设计评审。

复旦大学软件工程考研(MSE)数据结构复习资料

复旦大学软件工程考研(MSE)数据结构复习资料


大纲描述: 树的根本概念和术语;树的前序、中序、后序
、层次序遍历; 二叉树及其性质;普通树与二叉树的转换; 树的存储构造,标准形式;完全树(complete
tree)的数组形式存储; 树的应用,Huffman树 。
树的根本概念和术语
树: 是n〔n≥0〕个结点的有限集 在任意一棵非空树中: 有且仅有一个特定的称为根的结点 当n>1时,其余结点可以分为m〔m>0〕个互
练习答案
树的遍历
树的遍历
按某种搜索路径巡访树中每个结点,使每个结点均 被访问一次仅且一次
二叉树的遍历可分为前序、中序、后序、层次序等 普通树的遍历可以分为先根、后根、层次序等
树的遍历
二叉树的遍历 前序、中序、后序定义 层次序:从上而下,从左至右 常见问题 树写遍历结果 遍历结果画树 依据:二叉树的前序和中序遍历可以唯一确定
中缀表达式A-(B+C)*D/E的后缀形式是 _________________。
练习
中缀表达式a * ( b + c ) / d转为后缀表达式是 ————?
例题
计算后缀表达式1 2 + 4 * 2 /的值为——?
答案:6 思路:
顺序计算 或 转换为中缀表达式计算
习题
计算后缀表达式3 2 - 4 * 2 / 3+的值为—— ?
例题
例题
列出如上图所示树的所有叶子结点 答案:K,L,F,G,M,I,J
列出如上图所示树的所有分支结点 答案:A,B,C,D,E,H
树A为几次树?子树B呢?
答案:3,2
前页图所示树的高度为多少?
答案:4
树的根本概念和术语
如果将树中结点的各子树看作从左到右有序的 ,那么该树为有序树(ordered tree),否那么为无 序树。

MSE考研复习

MSE考研复习

24
计算机网络的分类
按网络覆盖的范围分类 按拓扑结构分类 按信息交换方式分类
25
按网络覆盖的范围分类
局域网LAN 校园网CAN 城域网MAN 广域网WAN 全球网GAN (Local Area Network) (Campus Area Network) (Metropolitan Area Network) (Wide Area Network) (Global Area Network)
报文交换 分组交换
数据报 虚电路方式
30
网络通信标准化组织
标准化工作的好坏对一种技术的发展有着很大 的影响,缺乏国际标准将会使技术的发展处于 比较混乱的状态,而盲目自由竞争的结果很可 能形成多种技术体制并存且互不兼容的状态 1992年,因特网不再归美国政府管辖,因此成 立了一个国际性组织叫做因特网协会ISOC (internet Society),以便对因特网进行全 面管理以及在世界范围内促进其发展和使用。 ISOC下面有一个技术组织叫做因特网体系结构 研究委员会 IAB (Internet Architecture Board),负责管理因特网有关协议的开发。 IAB下面又设有两个工程部。
传输介质
41
ISO/OSI参考模型
1. 物理层(The Physical Layer)
在物理线路上传输原始的二进制数据位(基本网络硬件)。
2. 数据链路层(The Data Link Layer)
数据报分组交换112虚电路分组交换在数据传送之前先建立站与站之间的一条逻辑通路不是专用的通路分组在每一个节点上仍需缓冲并在线路上进行排队等待输出一个站能和任何站建立多个虚电路也能与多个站建立虚电路每条虚电路支持特定的二个端系统之间的数据传输每个分组除了数据之外还有一个虚电路标识节点根据虚电路标识知道把这些分组引导到哪里113虚电路方式数据交换过程114虚电路分组交换提供可靠的通信功能能对差错流量顺序进行控制每个节点要有一张虚电路表存放已经建立的虚电路信息当某个节点或某条线路出故障时所有经过该节点线路的虚电路立即被破坏115数据报分组交换特点

复旦MSE复习资料软件工程(SE05软件测试2011)

复旦MSE复习资料软件工程(SE05软件测试2011)
26
• 1) 测试是为了验证软件已正确地实现了用户的要求。 • (2) 白盒测试仅与程序的内部结构有关,完全可以不考
虑程序的功能要求。 • (3) 黑盒测试的测试用例是根据程序内部逻辑设计的。 • (4) 为了快速完成集成测试, 采用一次性集成方式是适
宜的。
(5) 在软件开发过程中,若能推迟暴露其中的错误,则 为修复和改正错误所花费的代价就会降低。
27
• 1、错。 测试的目的是尽可能多地发现软件中的错误,其附带的收获才是验证该软件 已正确地实现了用户的要求。
2、对
3、错。 黑盒测试主要是根据程序的有关功能规格说明和覆盖准则来设计测试用例, 进行测试的,不是根据程序的内部逻辑来设计测试用例。
4、错。 采用一次性集成方式进行模块组装,往往成功率很低,而且出现错误时,不 容易确定问题出现在什么地方,因此应采用增量式集成方式,可以把出错的 范围局限到少数模块之中。
19
软件测试步骤
• 系统测试(system testing) 将软件、硬件、数据库等集成为计算机 系统,检查系统的功能、性能等是否符 合计算机系统的要求 测试方法:黑盒 发现的错误:系统工程
20
测试与软件开发各阶段的关系
21
软件开发V模型
系统工程
系统测试
需求分析
确认测试
设计
集成测试
编码
单元测试
32
3
有关软件测试的错误观点
• “程序测试是证明程序正确地执行了 预期的功能”。实际上,一个程序 不仅要完成它所需完成的功能,而 且不应完成它不该做的事。如不能 把边长为0、0、0的三条边判断为 等边三角形。
4
软件测试的原则
1. 应当把“尽早地和不断地进行软件测试” 作为软件开发者的座右铭。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

树的基本概念和术语
树:
是n(n≥0)个结点的有限集 在任意一棵非空树中:
1. 有且仅有一个特定的称为根的结点 2. 当n>1时,其余结点可以分为m(m>0)个互不相交的有
限集,其中每个集合本身又是一棵树,并且称为根的子 树
树属于层次结构数据结构
树的基本概念和术语
节点
标签
父节点、子节点、兄弟 节点、祖先节点、子孙 节点
练习
给出如图所示树的先根、后根和层次序遍历结果
练习答案
前根:ABEFHIGCJKLDMNOQP 后根:EHIFGBKLJCNQOPMDA 层次序:ABCDEFGJMHIKLNOPQ
例题
画出和下列已知序列对应的树T: 树的先根次序访问序列为GFKDAIEBCHJ 树的后根次序访问序列为DIAEKFCJHBG
由 n计0=此算[得出(到叶n+n子01=结)(点/2n数]+,。1就本)可题/2根或计据n算0完=得全n:/2二3,8叉4合。树并的成结一点个总公数式:
二叉树及其性质
具有n个结点的完全二叉树的深度为[log2n]+1
例题
具有2000个结点的二叉树,其深度至少为 _________。
答案:11
答案:3
栈的基本概念和性质
设计递归问题的非递归算法一般需要用到栈机 制
三个数a、b、c进栈,不可能出现c、a、b顺序 出栈
例题
若某栈的输入序列为a、b、c,则所有可能的 出栈序列有___种,所有不可能的出栈序列有 ____种。
答案:5,1
例题
若栈的输入序列为1,2,3,4,则——是不可能的 栈输出序列之一。
答案:h
二叉树及其性质
对于任何二叉树,如果叶子节点数为n0,度为2的 节点数为n2,则n0=n2+1
例题
在一棵二叉树中有n0个叶结点,有n2个度为2 的结点,则n2=________。
答案: n0 -1
例题
若一棵二叉树有10个叶结点,则该二叉树中度 为2的结的点个数为______________。
是有序的,此时称该森林为有序森林或果园。
二叉树及其性质
二叉树(Binary Tree)
另一种树形结构,特点是每个结点至多只有二棵子 树,且子树有左右之分,其次序不能任意颠倒
二叉树可能的五种基本形态
二叉树及其性质
在二叉树的第i层上至多有2i-1个结点(i≥1)
例题
一棵二叉树第五层上至多有多少个结点?至少 多少?
答案:16,1
二叉树及其性质
深度为k的二叉树至多有2k-1个结点(k≥1)
例题
深度为n(n>0)的二叉树最多有_____个结点。 答案:2n-1
例题
一棵深度为5的二叉树至多有多少个结点?至 少多少?
答案:31,5
例题
高度为h(h>0)的二叉树最少有________个结 点?
中缀表达式
a+b
后缀表达式
ab+
例题
中缀表达式a + b × c – d转为后缀表达式是— ———?
答案: a b c×+d-
例题
中缀表达式(a + b) × c – d转为后缀表达式 是————?
答案: a b + c×d- 思路:
数字位序不变,运算符位置改变 后缀表达式无括号,运算顺序同中缀表达式
答案:9
例题
若一二叉树有2度结点100个,则其叶结点有多 少个?
答案:101
例题
若二叉树中度为2的结点有15个,度为1的结点 有10个,共有多少个结点?
答案:41
例题
在一棵度为3的树中,度为3的结点有2个,度 为2的结点有1个,度为1的结点有2个,那么, 该树有__________个叶结点。
习题
中缀表达式A-(B+C)*D/E的后缀形式是 _________________。
练习
中缀表达式a * ( b + c ) / d转为后缀表达式 是————?
例题
计算后缀表达式1 2 + 4 * 2 /的值为——?
答案:6 思路:
顺序计算 或 转换为中缀表达式计算
课程安排
课程介绍 栈、队列和向量 树 查找 排序 图

大纲描述:
树的基本概念和术语;树的前序、中序、后序、层 次序遍历;
二叉树及其性质;普通树与二叉树的转换; 树的存储结构,标准形式;完全树(complete tree)的数
组形式存储; 树的应用,Huffman树 。
现;队列的应用; 向量基本概念和性质;向量ADT及其数组、链接实现;
线性表基本概念和性质
线性表
是n个数据元素的有限序列 常见线性表包括数组、链表、栈、队列等
线性表的两种实现方式
顺序 链式 对比:插入(有序、无序)、删除、查找、读取
环形链表
环形链表
又称循环列表,是另一种形式的链式存储结构。它 的特点是表中最后一个元素的指针域指向头结点
二叉树的遍历可分为前序、中序、后序、层次序等 普通树的遍历可以分为先根、后根、层次序等
树的遍历
二叉树的遍历
前序、中序、后序定义 层次序:从上而下,从左至右
常见问题
已知树写遍历结果 已知遍历结果画树
依据:二叉树的前序和中序遍历可以唯一确定一棵二叉树 思路:前序定根,中序定左右
答案:4,3,1,2
习题
若某栈的输入序列为a、b、c、d,则所有可能 的出栈序列有___种,所有不可能的出栈序列 有____种。
请写出所有可能的序列和不可能的序列。
栈的应用
数制转换
十进制数字与d进制数字的转换 N = ( N div d) × d + N mod d
其中div为整除,mod为求余。 算法:
树A为几次树?子树B呢?
答案:3,2
前页图所示树的高度为多少?
答案:4
树的基本概念和术语
如果将树中结点的各子树看作从左到右有序的, 则该树为有序树(ordered tree),否则为无序树。
森林(forest)是m棵互不相交的树的集合。 如果把一棵树的根砍去,剩下的部分就是森林。 如果原来的树是有序的,则砍去根后的森林也
二叉树及其性质
完全二叉树特点:
叶子结点只可能出现在层次最大的两层上 对任一结点,若其右分支下子孙的最大层次为l,其
左下分支的子孙的最大层次必为l或者l+1。
深度为k的完全二叉树第k层最少1个结点,最 多2k-1-1个结点;整棵树最少2k-1个结点,最多 2k-2个结点
例题
若某完全二叉树的深度为h,则该完全二叉树 中至少有______个结点。
2j+1
证明
完全树的数组形式存储
完全树的数组形式存储算法
将其编号为i的结点元素存储在一维数组下标为i-1 的分量中
例题
已知数组[20,30,19,87,30,40]表示一棵完全二 叉树,请画出该树。
练习答案
树的遍历
树的遍历
按某种搜索路径巡访树中每个结点,使每个结点均 被访问一次仅且一次
例题答案
普通树与二叉树的转换
对于任意k次树到相应二叉树的转换算法
对于具有子节点n1,n2…nk的节点n,将n1作为其左子 节点,且kj+1作为kj(1 j k-1)的右子节点
习题
计算后缀表达式3 2 - 4 * 2 / 3+的值为——?
递归
一个直接调用自己或通过一系列的调用语句间 接地调用自己的函数,称为递归函数
优点:结构清晰、程序易读、正确性容易得到证明 缺点:效率相对较低
队列的基本概念和性质
队列:
队列是限定仅在表的一头进行插入、另一头进行删 除操作的线性表
二叉树及其性质
如果含有n 1个节点的二叉树的高度为[log2n] +1,将其所有结点按层次序编号,则对于任一节 点j(1j n),有
如果j=1,则节点j是树的根,无双亲;如果j>1,则其父节 点parent(j)是节点[j/2]
如果2j>n,则节点j无左子节点;否则其左子节点为2j 如果2j+1>n,则节点j无右子节点;否则其右子节点为
路径、树枝
根、叶子 次数 内部节点、外部节点 树的次数、K次树 节点层次、树的高度和
深度 子树 有序树、无序树 森林、果园
例题
例题
列出如上图所示树的所有叶子结点
答案:K,L,F,G,M,I,J
列出如上图所示树的所有分支结点
答案:A,B,C,D,E,H
数据结构 2021MSE考研冲刺
课程安排
课程介绍 栈、队列和向量 树 查找 排序 图
课程目的
(以最小代价)通过考试! 不是成为专家 不是初学授课
试题结构
考试满分60分 考试题型:问答、分析、编程
样题-问答和编程题
插入排序、选择排序、冒泡排序、快速排序中 最快的排序方法是________
例题答案
树的遍历
普通树的遍历
前根:先遍历根结点,再依次前根遍历各棵子树 后根:先后根遍历各课子树,再遍历根结点 已知树写遍历结果 已知遍历结果画树
思路:先根定根,后根定子树
例题
写出如右图所示树的先 根、后根、层次序遍历 结果
例题答案
前序: ABECFGHD 后序:EBFHGCDA 层次序:ABCDEFGH
递归和非递归算法实现
例题
写出左图所示二叉树的 前序、中序、后序、层 次序遍历结果
相关文档
最新文档