



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、考点 1算法的复杂度【考点精讲】1算法的基本概念计算机算法为计算机解题的过程实际上是在实施某种算法。算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。2算法复杂度算法复杂度包括时间复杂度和空间复杂度。名称描述时间复杂度是指执行算法所需要的计算工作量空间复杂度是指执行这个算法所需要的内存空间考点 2逻辑结构和存储结构【考点精讲】1逻辑结构数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为 D;二是 D 上的关系,它反映了数据元素之间的前后件关系,通常记为R。一个数据结构可以表示成
2、B=( D, R)其中 B 表示数据结构。 为了反映D 中各数据元素之间的前后件关系,一般用二元组来表示。例如,如果把一年四季看作一个数据结构,则可表示成B =(D,R)D =春季,夏季,秋季,冬季R =(春季,夏季),(夏季,秋季) ,(秋季,冬季)2存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。一种数据的逻辑结构根据
3、需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。顺序存储方式主要用于线性的数据结构, 它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。链式存储结构就是在每个结点中至少包含一个指针域, 用指针来体现数据元素之间逻辑上的联系。考点 3线性结构和非线性结构【考点精讲】根据数据结构中各数据元素之间前后件关系的复杂程度, 一般将数据结构分为两大类型: 线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:( 1)有且只有一个根结点;( 2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。线性结构又称线性表。在
4、一个线性结构中插入或删除任何一个结点后还应是线性结构。栈、队列、串等都线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。数组、广义表、 树和图等数据结构都是非线性结构。考点4栈【考点精讲】1栈的基本概念栈( stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素;另一端是开口的,允许插入和删除元素。通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素, 从而也是最先被删除的元素; 栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈是按照“先进后出”或“
5、后进先出”的原则组织数据的。例如,枪械的子弹匣就可以用来形象的表示栈结构。子弹匣的一端是完全封闭的,最后被压入弹匣的子弹总是最先被弹出,而最先被压入的子弹最后才能被弹出。2栈的顺序存储及其运算栈的基本运算有三种:入栈、退栈与读栈顶元素。( 1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。( 2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。( 3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。考点5 队列【考点精讲】1队列的基本概念队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。当表中没有元素时称为空队列。队列
6、的修改是依照先进先出的原则进行的, 因此队列也称为先进先出的线性表, 或者后进后出的线性表。例如:火车进遂道,最先进遂道的是火车头,最后是火车尾,而火车出遂道的时候也是火车头先出,最后出的是火车尾。若有队列:Q =( q1, q2, qn)那么, q1 为队头元素(排头元素), qn 为队尾元素。队列中的元素是按照q1, q2, qn的顺序进入的,退出队列也只能按照这个次序依次退出,即只有在q1,q2, qn-1 都退队之后, qn 才能退出队列。因最先进入队列的元素将最先出队,所以队列具有先进先出的在树结构中, 每一个结点可以有多个后件, 称为该结点的子结点。 没有后件的结点称为叶子结点。例
7、如,在图 1-1 中,结点 D, E, F 均为叶子结点。度在树结构中, 一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。例如,在图 1-1 中,根结点 A 和结点 B 的度为 2,结点 C 的度为 1,叶子结点 D, E, F 的度为 0。所以,该树的度为 2 。深度定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加树的最大层次称为树的深度。例如,在图 1-1 中,根结点 A 在第 1 层,结点 B,C 在第结点 D, E, F 在第 3 层。该树的深度为3 。1。2 层,子树在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。2
8、、二叉树基本性质二叉树具有以下几个性质:性质 1:在二叉树的第 k 层上,最多有 2k-1(k 1)个结点;性质 2:深度为 m 的二叉树最多有2m-1 个结点;性质 3:在任意一棵二叉树中,度为0 的结点(即叶子结点)总是比度为2 的结点多一个。性质 4:具有 n 个结点的二叉树,其深度至少为log2n +1,其中 log2n表示取 log2n的整数部分。3、满二叉树与完全二叉树满二叉树是指这样的一种二叉树:除最后一层外, 每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k 层上有 2k-1个结点,且深度为 m 的满二叉树有 2m 1 个结点。完
9、全二叉树是指这样的二叉树:除最后一层外, 每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。对于完全二叉树来说, 叶子结点只可能在层次最大的两层上出现:对于任何一个结点, 若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为 p+1。完全二叉树具有以下两个性质:性质 5:具有 n 个结点的完全二叉树的深度为log2n +1。性质 6:设完全二叉树共有 n 个结点。如果从根结点开始,按层次(每一层从左到右)用自然数 1,2, n 给结点进行编号,则对于编号为k( k=1, 2, n)的结点有以下结论:若 k=1,则该结点为根结点,它没有父结点; 若 k
10、>1,则该结点的父结点编号为INT( k/2 )。若 2k n,则编号为k 的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。若 2k+1 n,则编号为k 的结点的右子结点编号为2k+1;否则该结点无右子结点。考点 8二叉树的遍历【考点精讲】在遍历二叉树的过程中, 一般先遍历左子树, 再遍历右子树。 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。( 1)前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。例如,对图1-1 中的二叉树进行前序
11、遍历的结果(或称为该二叉树的前序序列)为:A,B,D, E, C, F。(2)中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。例如,对图 1-1 中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)为:D,B,E,A, C,F。( 3)后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。例如,对图 1-1 中的二叉树进行后序遍历的结果 (或称为该二叉树的后序序列) 为: D, E,B, F, C, A。考点 9顺序查找【考点精讲
12、】查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失败。例如,在一维数组21 ,46,24, 99, 57,77,86 中,查找数据元素98,首先从第1 个元素21 开始进行比较,与要查找的数据不相等,接着与第2 个元素 46 进行比较,以此类推,当进行到与第4 个元素比较时,它们相等,所以查找成功。如果查找数据元素100,则整个线性表扫描完毕,仍未找到与100 相等的元素,表示线性表中没有要查找的元素。在下列两种情况下也只能采用顺序查找
13、:( 1)如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找。( 2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。考点 10二分法查找【考点精讲】二分法查找, 也称拆半查找, 是一种高效的查找方法。 能使用二分法查找的线性表必须满足两个条件:用顺序存储结构;线性表是有序表。在本书中,为了简化问题,而更方便讨论,“有序”是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等。下一节排序中,有序的含义也是如此。对于长度为n 的有序线性表,利用二分法查找元素X 的过程如下。步骤 1:将 X 与线性表的中间项比较:步骤 2:如果 X 的值与中间项的值相等,则查找
14、成功,结束查找;步骤 3:如果 X 小于中间项的值,则在线性表的前半部分以二分法继续查找;步骤 4: 如果 X 大于中间项的值,则在线性表的后半部分以二分法继续查找。例如,长度为 8 的线性表关键码序列为:6, 13, 27,30,38, 46, 47,70 ,被查元素为38,首先将与线性表的中间项比较,即与第4 个数据元素 30相比较, 38 大于中间项30 的值,则在线性表 38 ,46, 47, 70继续查找;接着与中间项比较,即与第2 个元素 46相比较, 38 小于 46,则在线性表 38 继续查找,最后一次比较相等,查找成功。顺序查找法每一次比较,只将查找范围减少1,而二分法查找,每比较一次,可将查找范围减少为原来的一半,效率大大提高。对于长度为 n 的有序线性表,在最坏情况下,二分法查找只需比较log2n 次,而顺序查找需要比较 n 次。考点 11 排序【考点精讲】冒泡排序法和快速排序法都属于交换类排序法。(1)冒泡排序法首先, 从表头开始往后扫描线性表, 逐次比较相邻两个元素的大小,若前面的元素大于后面的元素, 则将它们互换, 不断地将两个相邻元素中的大者往后移动,最后最大者到了线性表的最后。然后, 从后到前扫描剩下的线性表, 逐次比较相邻两个元素的大小,若后面的元素小于前面的元素, 则将它们互
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 寿险咨询方案怎么写的
- 年底企业主题活动方案策划
- 老年人保健咨询方案
- 庆阳环保渗水砖施工方案
- 造价咨询施工方案范本
- 2025年医疗器械行业医疗器械市场规模与产品创新趋势研究报告
- 五一烤鸭店活动方案策划
- 2025年人工智能行业创新技术应用研究报告
- 2025年医疗保健行业数字化转型与智能医疗研究报告
- 2025年医疗器械行业技术创新与医疗改革研究报告
- 人脸采集管理办法
- 壶腹部肿瘤的治疗及护理
- 感术行动培训课件
- 桥梁施工安全会议记录
- 乡村旅游环境卫生培训
- 六级英语试题库电子版及答案
- 2025年工程机械行业发展研究报告
- (二模)2025年5月济南市高三高考针对性训练英语试卷(含答案解析)
- 智慧燃气解决方案
- 抖音来客本地生活服务丽人美容美体商家短视频拍摄创作运营方案
- 《妊娠期合并心脏病》课件
评论
0/150
提交评论