- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 数据结构与算法(10-12分)
考点:
算法(****)
数据结构(***)
线性表及其顺序存储结构(**)
栈和队列(*****)
线性链表(**)
树与二叉树(*****)
查找技术(****)
排序技术(***)
一、数据结构与算法
1、概念
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作
2、数据的逻辑结构
线性结构(例:一维数组、链表、栈、队列、串、线性表)
非线性结构(例:多维数组、广义表、树、图)
3、数据的存储结构(线性表)
顺序存储方法:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的
链接存储方法:逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的
计算机中有数据进行处理时,数据的存储结构对程序的执行效率有很大的关系
一种数据的逻辑结构根据需要可以表示成多种存储结构。数组是数据的逻辑结构,可以用多种存储结构来表示
线性链表:就是指线性表的链式存储结构,简称链表
4、算法的基本特征
可行性:针对实际问题而设计的算法,执行后能够得到满意的结果
确定性:算法中的每一个步骤都必须有明确的定义,不允许出现歧义性
有穷性:算法必须在有限时间内做完,即必须在执行有限个步骤之后终止,算法程序的运行时间是有限的
拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效
5、算法的复杂度
时间复杂度:该算法执行的时间耗费,是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数
空间复杂度:该算法执行时所耗费的存储空间
6、顺序表和链表的比较:
基于空间的考虑:(1)顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。(2)顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的
二、栈
栈实际也是线性表,只不过是一种特殊的线性表。栈称为“先进后出”表或“后进先出”表,顺序存储、链式存储
栈的计算:求栈中元素的个数:栈底元素—栈顶元素
栈是限定在一端进行插入与删除的线性表,允许插入元素的一端为栈顶,允许删除元素的一端为栈底,栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素则总是最先被插入而最后被删除的元素
三、队列
队列也是一种运算受限的线性表,是一种“先进先出”,“后进后出”的线性表, 顺序存储、链式存储
队列的计算:求队列中元素的个数:当rearfront时,?rear—front 当rearfront时,rear-front+m m(代表队列的容量)
循环队列仍然是顺序存储结构,是队列常采用的形式
队列是一种线性表,它允许在一端进行插入,在另一端进行删除
四、树与二叉树(非线性结构)
1、树
节点:树中的每一个点叫做节点,分为根节点(0或1个)、父节点、子节点
度:一个结点拥有的子树数称为该结点的度。一棵树的度是指该树中结点的最大度数。度为1的点节叫做n1,度为2的节点叫做n2
叶子节点:度为零的结点称为叶子(没有子节点的节点) 叫做n0
深度:树中结点的最大层数称为树的高度或深度
2、二叉树
二叉树:由左树和右树组成,二叉树的度=2 ,当度 为0时叫做空树
具有3个结点的二叉树有5种形态
满二叉树:指除最后一层外,每一层上的所有结点都 有两个子结点的二叉树
完全二叉树:除最后一层外,每一层上的结点数均达 到最大值,在最后一层上只缺少右边的若 干结点
二叉树的性质:
性质1:二叉树第k层上的结点数目最多为2k-1(k=1)
性质2:深度为m的二叉树至多有2m-1个结点(k=1)
性质3:度为2的结点数为n2,度为0的节点叫做n0,则n0=n2+1(度为0的节点比度为2的节点多一个),整个二叉树节点个数:n=n0+n1+n2
性质4:具有n个结点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分
二叉树的遍历:
遍历:是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问
(1)前序遍历:
访问根结点——左子树——右子树
(2)中序遍历:
左子树——访问根结点——右子树
(3)后序遍历:
左子树——右子树——访问根结点
例:前序:ABDEGCF
中序:DBGEACF
后序:DGEBFCA
五、排序
冒泡排序:是最简单的一种交换类排序法。在最坏的情况下,对长度为n的线性表排序,冒泡排序需要比较的次数为n(n-1)/2,其时间复杂度为O(n2)
直接选择排序:最坏情况要比较的次数为O(n2) ,其时间复杂度为O(n2)
您可能关注的文档
最近下载
- 2.附件: 油气管道水平定向钻穿越技术规定.pdf
- 吊装作业管理规定制度版(根据GB30871-2022修订).docx VIP
- 精品解析:北京市海淀外国语学校2024-2025学年九年级上学期10月月考数学试卷(解析版).docx VIP
- 二五一医院锅炉房管理方案.docx VIP
- 2.2中国的气候第2课时(降水)课件人教版地理八年级上册.pptx VIP
- 3-2固溶体的分类.pdf VIP
- 《2.2中国的气候》(第2课时)八年级地理上册优质课件(人教版).ppt VIP
- 北师大版小学二年级数学上册优质教学设计《儿童乐园》教案.pdf VIP
- BS EN 10217-1-2019 压力用焊接钢管.交货技术条件.第1部分:规定室温性能的电焊和埋弧焊非合金钢管.pdf VIP
- 油田含油污水处理设计规范.docx
文档评论(0)