版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XX 考研计算机数据结构复习要点核心考点一:队列和栈结构的概念理解栈是仅限制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶。 表中无元素时为空栈。 栈的修改是按后进先出的原则进行的。通常栈有顺序栈和链栈两种存储结构。队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行, 允许删除的一端称为队头, 允许插入的一端称为队尾,队列的操作原则是先进先出的。 队列也有顺序存储和链式存储两种存储结构。核心考点二:线性表中单链表相关算法设计与实现一些基础但又重要的单链表相关算法,如:1.打印单链表, void PrintList(List list); 使用一个指针遍历所有
2、链表节点。2. 两个升序链表,打印 tarList 中的相应元素,这些元素的序号由 SeqList 指定,void PrintLots (List tarList , List seqList );使用两个指针分别遍历两个链表,每次取出序列链表的一个序号后,根据该序号,到达目标链表指定节点。3.两个升序链表的交集,List Intersect (Listl1 , Listl2 );4.两个升序链表的并集,List Join (List l1, List l2);5. 单链表就地置逆, void Reverse(List l ); 使用三个指针表示前驱,当前和后继节点,每次将当前节点的 Next
3、 指向前驱节点,然后向后遍历直到链表末尾。核心考点三:二叉树的遍历遍历的过程就是把非线性结构的二叉树中的结点排成一个线性序列的过程。二叉树遍历方法可分为两大类,一类是“宽度优先”法,即从根结点开始,由上到下,从左往右一层一层的遍历;另一类是“深度优先法”,即一棵子树一棵子树的遍历。从二叉树结构的整体看,二叉树可以分为根结点,左子树和右子树三部分,只要遍历了这三部分,就算遍历了二叉树。设D 表示根结点,L 表示左子树, R表示右子树, 则 DLR的组合共有 6 种,即 DLR,DRL,LDR,LRD,RDL,RLD.若限定先左后右,则只有DLR,LDR,LRD三种,分别称为先(前)序法(先根次序
4、法) ,中序法(中根次序法,对称法),后序法(后根次序法)。三种遍历的递归算法如下:1. 先序法( DLR)若二叉树为空,则空操作,否则:访问根结点?先序遍历左子树?先序遍历右子树。2. 中序法( LDR)若二叉树为空,则空操作,否则:中序遍历左子树?访问根结点?中序遍历右子树。3. 后序法( LRD)若二叉树为空,则空操作,否则:后序遍历左子树?后序遍历右子树?访问根结点。核心考点四:完全二叉树中有关结点个数计算完全二叉树的定义:深度为k,有 n 个结点的二叉树当且仅当其每一个结点都与深度为k 的满二叉树中编号从1 至 n 的结点一一对应时,称为完全二叉树。完全二叉树的叶子数为(n + 1
5、) / 2取下整。考研计算机核心考点五:森林与二叉树之间的转换以及转换过程中结点之间的关系将一棵树转换为二叉树的方法是:1. 树中所有相邻兄弟之间加一条连线。2. 对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。3. 以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。森林转换为二叉树的方法如下:1. 将森林中的每棵树转换成相应的二叉树。2. 第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子, 当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。树和森林都可以转换为二叉树,二者的不
6、同是:树转换成的二叉树,其根结点必然无右孩子,而森林转换后的二叉树,其根结点有右孩子。将一棵二叉树还原为树或森林,具体方法如下:1. 若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、 都与该结点 的双亲结点用线连起来。2. 删掉原二叉树中所有双亲结点与右孩子结点的连线。3. 由 1、2 两步所得到的树或森林,使之结构层次分明。核心考点六:对无向连通图特性的理解无向图的每条边,在顶点计算度的过程中, 都要两次参与计算 (与边两关联的 2 个顶点),因此所有顶点的度之和为偶数。具有 n 个顶点的无向连通图,其边数大于或等于 n-1. 在无向连通图中,所有顶点的度数都有可能大于 1.
7、核心考点七:对 m阶 B 树定义的理解一棵 m阶的 B 树满足下列条件:1. 每个结点至多有 m棵子树。2. 除根结点外,其它每个分支至少有 m/2 棵子树。3. 根结点至少有两棵子树(除非 B 树只有一个结点)。4. 所有叶结点在同一层上。 B树的叶结点可以看成一种外部结点,不包含任何信息。5. 有 j 个孩子的非叶结点恰好有 j-1 个关键码,关键码按递增次序排列。结点中包含的信息为 (p0,k1,p1,k2,p2,kj-1 ,pj-1 )其中, ki 为关键码,且满足ki核心考点八:带权图的最短路径算法及应用迪杰斯特拉( Dijkstra)算法求单源最短路径,算法思想:设 S 为最短距离
8、已确定的顶点集(看作红点集), V-S 是最短距离尚未确定的顶点集(看作蓝点集)。1. 初始化:初始化时,只有源点 s 的最短距离是已知的( SD(s)=0),故红点集 S=s ,蓝点集为空。2. 重复以下工作,按路径长度递增次序产生各顶点最短路径,在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集, 以保证算法按路径长度递增的次序产生各顶点的最短路径。 当蓝点集中仅剩下最短距离为的蓝点,或者所有蓝点已扩充到红点集时, s 到所有顶点的最短路径就求出来了。注意:若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径。 从源点 s 到终点 v 的最短路径简称为 v 的
9、最短路径;s 到 v 的最短路径长度简称为 v 的最短距离,并记为 SD(v)。考研计算机核心考点九:堆排序大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是最大的。 而且显然大根堆的任一棵子树也是大根堆。堆排序的基本思想:记录区的分为无序区和有序区前后两部分;用无序区的数建大根堆,得到的根(最大的数)和无序区的最后一个数交换,也就是将该根归入有序区的最前端;如此重复下去,直至有序区扩展至整个记录区。具体操作可按下面步骤实现:1. 建大根堆2. 交换根和无序区最后一个数3. 重建大根堆,因为交换只是使根改变了,所以左右子树依然分别是大根堆。4. 比较根,左子树的根和右
10、子树的根,如果根最大,则无须再作调整,树已经是大根堆了;如果左子树的根最大,交换它与根,再递归调整左子树;如果右子树的根最大,交换它与根,再递归调整右子数。5. 递归调整到叶子的时候,树就是大根堆了。核心考点十:各类排序算法的特点及比较几种主要的排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序、 Shell 排序、堆排序等。冒泡排序算法思想: 将待排序的元素看作是竖着排列的 “气泡”,较小的元素比较轻, 从而要往上浮。 在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所 谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。 如果发现两个相邻元素的顺序
11、不对,即“轻”的元素在下面,就交换它 们的位置。选择排序算法思想:选择排序的基本思想是对待排序的记录序列进行 n-1 遍的处理,第 i 遍处理是将 Li n 中最小者与 Li 交换位置。这样,经过 i 遍处理之后,前 i 个记录的位置已经是正确的了。插入排序算法思想:经过 i-1 遍处理后, L1 i-1 己排好序。第 i 遍处理仅将 Li 插入 L1 i-1 的适当位置,使得 L1 i 又是排好序的序列。快速排序算法思想:快速排序的基本思想是基于分治策略的。对于输入的子序列 Lp r ,如果规模足够小则直接进行排序,否则分三步处理: 1. 分解( Divide ):将输入的序列 Lp r 划
12、分成两个非空子序列 Lp q 和 Lq+1 r ,使 Lp q 中任一元素的值不大于 Lq+1r 中任一元素的值。2.递归求解(Conquer):通过递归调用快速排序算法分别对 Lp q 和 Lq+1 r 进行排序。3. 合并( Merge):由于对分解出的两个子序列的排序是就地进行的,所以在 Lp q 和 Lq+1 r 都排好序后不需要执行任何计算 Lpr 就已排好序。归并排序算法思想:分而治之(divide - conquer)。每个递归过程涉及三个步骤: 1. 分解,把待排序的 n 个元素的序列分解成两个子序列,每个子序列包括 n/2 个元素。 2. 治理,对每个子序列分别调用归并排序 MergeSort ,进行递归操作。 3. 合并,合并两个排好序的子序列,生成排序结果。Shell排序算法思想:算法先将要排序的一组数按某个增量d 分成若干组,每组中记录的下标相差d. 对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。 当增量减到 1 时,整个要排序的数被分成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸业务员的实习报告合集4篇
- 《把时间当做朋友》读书笔记12篇
- 员工季度工作总结范文
- 网页设计师目标岗位分析个人工作总结
- 竞聘银行演讲稿模板汇编5篇
- 幼儿园中班防溺水安全教育
- 护理呼吸科毕业设计
- 理财年终工作总结模板
- 讲解飞机安全演示
- 关于宣传策划方案范文锦集6篇
- 国家开放大学电大《建筑制图基础》机考三套标准题库及答案3
- 降低故障工单回复不合格率
- 可涂色简笔画打印(共20页)
- 灯光架介绍及使用说明
- 十一学校行动纲要
- GB 1886.6-2016 食品安全国家标准 食品添加剂 硫酸钙(高清版)
- 关于房屋征收及土地收储过程中的税收政策(仅供参考)
- 唯一住房补贴申请书(共2页)
- 单面多轴钻孔组合机床动力滑台液压系统课程设计
- 中医养生脾胃为先PPT文档
- 门窗工程成品保护方案(附图)
评论
0/150
提交评论