- 相关推荐
2014考研 计算机数据结构备考要点
专业课的复习,尤其是计算机专业的复习,对部分备考2014考研的学生着实是件令人头疼的事情。为方便考生有效复习计算机专业,特总结了计算机专业数据结构的十大核心考点,以供大家参考,希望对大家有所帮助。
核心考点一:队列和栈结构的概念理解
栈是仅限制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶。表中无元素时为空栈。栈的修改是按后进先出的原则进行的。通常栈有顺序栈和链栈两种存储结构。
队列是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头,允许插入的一端称为队尾,队列的操作原则是先进先出的。队列也有顺序存储和链式存储两种存储结构。
核心考点二:线性表中单链表相关算法设计与实现
一些基础但又重要的单链表相关算法,如:
1.打印单链表,void PrintList(List list); 使用一个指针遍历所有链表节点。
2.两个升序链表,打印tarList中的相应元素,这些元素的序号由SeqList指定,void PrintLots(List tarList, List seqList); 使用两个指针分别遍历两个链表,每次取出序列链表的一个序号后,根据该序号,到达目标链表指定节点。
3.两个升序链表的交集 ,List Intersect(List l1, List l2);
4.两个升序链表的并集 ,List Join(List l1, List l2);
5.单链表就地置逆,void Reverse(List l); 使用三个指针表示前驱,当前和后继节点,每次将当前节点的Next指向前驱节点,然后向后遍历直到链表末尾。
核心考点三:二叉树的遍历
遍历的过程就是把非线性结构的二叉树中的结点排成一个线性序列的过程。
二叉树遍历方法可分为两大类,一类是“宽度优先”法,即从根结点开始,由上到下,从左往右一层一层的遍历;另一类是“深度优先法”,即一棵子树一棵子树的遍历。
从二叉树结构的整体看,二叉树可以分为根结点,左子树和右子树三部分,只要遍历了这三部分,就算遍历了二叉树。设D表示根结点,L表示左子树,R表示右子树,则DLR的组合共有6种,即DLR,DRL,LDR,LRD,RDL,RLD.若限定先左后右,则只有DLR,LDR,LRD三种,分别称为先(前)序法(先根次序法),中序法(中根次序法,对称法),后序法(后根次序法)。三种遍历的递归算法如下:
1.先序法(DLR)
若二叉树为空,则空操作,否则:访问根结点?先序遍历左子树?先序遍历右子树。
2.中序法(LDR)
若二叉树为空,则空操作,否则:中序遍历左子树?访问根结点?中序遍历右子树。
3.后序法(LRD)
若二叉树为空,则空操作,否则:后序遍历左子树?后序遍历右子树?访问根结点。
核心考点四:完全二叉树中有关结点个数计算
完全二叉树的定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。
完全二叉树的叶子数为(n + 1) / 2取下整。
考研计算机核心考点五:森林与二叉树之间的转换以及转换过程中结点之间的关系
将一棵树转换为二叉树的方法是:
1.树中所有相邻兄弟之间加一条连线。
2.对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。
3.以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。
森林转换为二叉树的方法如下:
1.将森林中的每棵树转换成相应的二叉树。
2.第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。
树和森林都可以转换为二叉树,二者的不同是:树转换成的二叉树,其根结点必然无右孩子,而森林转换后的二叉树,其根结点有右孩子。将一棵二叉树还原为树或森林,具体方法如下:
1.若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点 的双亲结点用线连起来。
2.删掉原二叉树中所有双亲结点与右孩子结点的连线。
3.整理由1、2两步所得到的树或森林,使之结构层次分明。
核心考点六:对无向连通图特性的理解
无向图的每条边,在顶点计算度的过程中,都要两次参与计算(与边两关联的2个顶点),因此所有顶点的度之和为偶数。
具有n个顶点的无向连通图,其边数大于或等于n-1.
在无向连通图中,所有顶点的度数都有可能大于1.
核心考点七:对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为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。
1.初始化:初始化时,只有源点s的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为空。
2.重复以下工作,按路径长度递增次序产生各顶点最短路径,在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。
注意:①若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径。②从源点s到终点v的最短路径简称为v的最短路径;s到v的最短路径长度简称为v的最短距离,并记为SD(v)。
考研计算机核心考点九:堆排序
大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是最大的。而且显然大根堆的任一棵子树也是大根堆。
堆排序的基本思想:记录区的分为无序区和有序区前后两部分;用无序区的数建大根堆,得到的根(最大的数)和无序区的最后一个数交换,也就是将该根归入有序区的最前端;如此重复下去,直至有序区扩展至整个记录区。
具体操作可按下面步骤实现:
1.建大根堆
2.交换根和无序区最后一个数
3.重建大根堆,因为交换只是使根改变了,所以左右子树依然分别是大根堆。
4.比较根,左子树的根和右子树的根,如果根最大,则无须再作调整,树已经是大根堆了;如果左子树的根最大,交换它与根,再递归调整左子树;如果右子树的根最大,交换它与根,再递归调整右子数。
5.递归调整到叶子的时候,树就是大根堆了。
核心考点十:各类排序算法的特点及比较
几种主要的排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序、Shell排序、堆排序等。
冒泡排序算法思想:将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所 谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它 们的位置。
选择排序算法思想:选
【考研 计算机数据结构备考要点】相关文章:
2015考研冲刺必读:英语备考要点04-28
考研数学试题特点分析及备考要点指南05-02
2015考研英语 高频词汇备考要点总结04-29
2012年考研英语一翻译备考三要点04-28
2015考研计算机专业 暑期备考攻略04-29
考研备考心得02-23
考研备考经验与心得03-15
2012考研心理学备考 勤思考研备考指导04-28
2012考研心理学备考 勤思考研备考指导04-28
2016考研必备:2016考研备考月历04-28