- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章算法与数据结构基础
第六章 算法与数据结构基础 ;6.1 数据结构基本概念 ; 数据结构的定义;向量{2,43,68,45,32}是数据结构; ;数据逻辑结构 ;一个数据结构可以表示为 S = ( D, R );线性结构:;数据之间存在一对多的关系
一个结点最多有一个前件,可以有多个后件
前件与后件之间有层次关系;数据元素之间存在多对多的关系
一个结点可以有多个前件和多个后件; 一般来说,数据之间有集合,线性,树型和图形 4 种基本逻辑结构。;数据物理结构;顺序存储结构;有如下顺序关系{ a, b, c, d }; 链式存储结构; 链式存储结构;顺序存储结构与链式存储结构比较;链式存储的插入;6.2 算法基本概念;计算机算法分为:
√ 数值算法
√ 非数值算法 ;算法的特征;算法描述方法 ;√ 计算; 用于描述算法的工具很多,通常有流程图、N-S图、自然语言和伪代码等工具。;伪代码法:是一种假的代码—不能被计算机所理解,但可以用你熟悉的计算机语言的语句加上自然语言构成。; 用于描述算法的工具很多,通常有流程图、N-S图、自然语言和伪代码等工具。;开始;N-S图: 完全去掉了带箭头的流程线、算法的所有处理步骤都写在一个大矩形框内, 框内还可以包含一些从属于它的小矩形框, 适于结构化程序设计。;算法评价 ;算法复杂度 ;6.3 典型数据结构;6.3.1 线性表 ;?向量{2,43,68,45,32}是线性表。;线性表顺序存储结构具有以下两个基本特点:
?线性表中所有元素所占的存储空间是连续的。
?线性表中各元素在存储空间中按逻辑顺序依次存放,即线性表的逻辑结构与存储结构相一致。;例如:线性结构 {a1,a2,a3},其中每个数据元素占2个存储空间,假设存储a1的首地址为2000。;线性表的链式存储 ;单链表;循环链表 ;循环链表特点:
从表中任一结点出发,均可以找到其它所有结点;
在任何情况下,带有表头结点的循环链表中至少有一个结点存在,从而使空表和非空表运算统一。
循环链表运算与单链表区别:
对单链表进行操作时,要判断是否是表尾,即指针是否为NULL;
而对循环链表操作时,要判断是否是头指针。;6.3.2 栈 ; 设有一个栈S={a1,a2,…,an},入栈顺序是a1、a2…最后是an。栈的状态如图所示: ;栈的基本运算;栈的顺序存储;入栈运算;出栈运算; 例如,容量为6的栈中已有3个元素,如图所示:;6.3.3 队 列;队列的基本运算;队列顺序存储及其常用运算;创建一个空队列,并令 front= rear=-1;2. 入队运算;3. 退队运算;循环队列;循环队列的运算;;循环队列的运算;6.3.5 树;结点的度:一个结点所拥有后件个数
树的度:树中所有结点的最大度 ; ;6.3.6 二叉树;二叉树有五种基本形态 ;二叉树基本性质 ;满二叉树;注:满二叉树是完全二叉树,但完全二叉树不一定是满二叉树。;完全二叉树性质:;完全二叉树性质:;二叉树的顺序存储;非完全二叉树顺序存储;二叉树链式存储;
;二叉树的遍历;先序遍历;中序遍历; √后序遍历左子树
√后序遍历右子树
√访问根结点;6.4 典型算法;1 顺序查找;例如:在顺序表( 88, 15, 23, 80, 63, 8, 86, 46, 71, 101 )中, 查找 值为71的数据元素。;2 二分查找;例:在有序顺序表(8,15,23,46,63,71,80,86,88,101)中,用折半查找法查找值为 71 的数据元素。 ;2.排序算法;1交换排序法;交换排序法;2选择排序法;原序列:;3插入排序法;①将待排序序列中第一个元素作为有序序列,将第二个元素插入到有序序列中,形成由两个元素组成的有序序列。
②再将第三个元素插入到有序序列中。依此类推,直到最后一个元素插入到有序序列中,形成n个元素组成的有序序列。;插入排序法
文档评论(0)