第五章算法与数据结构.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章算法与数据结构

第5章 算法与数据结构;5.1 算法与数据结构的基本概念 ;1.算法的两个基本要素 (1)对数据对象的运算和操作 1) 算术运算:主要有加、减、乘、除等运算。2) 逻辑运算:主要有与、或、非等运算。 3) 关系运算:主要有大于、小于、等于、不等于等运算。 4) 数据传输:主要包括赋值、输入、输出等操作。;(2)算法的控制结构 算法中各操作之间的执行顺序称为算法的控制结构。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。;2.算法设计基本方法 (1)列举法 列举法是针对待解决的问题,列举所有可能的情况,并用问题中给定的条件来检验哪些是必需的,哪些是不需要的。 (2)归纳法 归纳法是从特殊到一般的抽象过程。通过分析少量的特殊情况,找出一般的关系。;(3)递归 递归分为直接递归与间接递归两种。如果一个算法A显式地调用自己则称为直接递归。如果算法A调用另一个算法B,而算法B又调用算法A,则称为间接递归调用。 (4)回溯法 通过对待解决的问题进行分析,找出一个解决问题的线索,然后根据这个线索进行探测,若探测成功便可得到问题的解,若探测失败,就要逐步回退,改换别的路经进一步探测,直到问题得到解答或问题最终无解。;5.1.2 算法的事前估计 ;5.1.3 数据结构 ;数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。 数据元素:在数据处理领域中,每一个需要处理的对象都可以抽象成数据元素。数据元素一般简称为元素。作为某种处理,其中的数据元素一般具有某种共同特征。 ;例如:描述一年四季的季节名“春、夏、秋、冬”可以作为季节的数据元素。 表示家庭成员的各成员名“父亲、儿子、女儿”可以作为家庭成员的数据元素 。 表示数值的各个数“35、21、44、70、66、…”可以作为数值的数据元素。;一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在着关系,这种关系反映了该集合中的数据元素所固有的一种结构。在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(或直接前驱与直接后继关系)来描述。 例如,一年四个季节的顺序关系时,则“春”是“夏”的前件(即直接前驱,下同),而“夏”是“春”的后件(即直接后继,下同)。;1.数据的逻辑结构 所谓数据的逻辑结构,是指描述数据元素之间逻辑关系的数据结构。数据的逻辑结构由某一数据对象及该对象中所有数据成员之间的关系(前后件关系)组成。即一个数据结构可以表示成: Data_Structure =(D,R); 上式中Data_Structure表示数据结构,D是数据元素的集合, R是D上的关系,它反映了D中各数据元素之间的前后件关系。 例如: 设a与b是D中的两个数据,则二元组(a, b)表示a是b的前件,b是a的后件。 ;例如:一年四季的数据逻辑结构可以表示为: B = (D, R) D ={春,夏,秋,冬} R ={(春,夏),(夏,秋),(秋, 冬)};2.数据的物理结构 数据的物理结构:数据的逻辑结构在计算机中的存储方式称为数据的物理结构。它包括数据元素的存储方式和关系的存储方式。 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。采用不同的存储结构,其数据处理的效率是不同的 。;5.1.4 线性结构与非线性结构 ;线性结构 : 如果一个非空的数据结构满足下列两个条件: (1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。线性结构又称线性表。;如一年四季这个数据结构就属于线性结构,如图所示。 在一个线性结构中插入或删除任何一个结点后还应是线性结构。 ;非线性结构: 如果一个数据结构不是线性结构,则称之为非线性结构。如家庭成员间辈分关系的数据结构就属于非线性结构,如图所示。 ;显然,在非线性结构中,各数据元素之间的前后件关系要比线性结构复杂,因此,对非线性结构的存储与处理比线性结构要复杂得多。;5.2 线性表与线性链表 ;线性表或是一个空表,或可以表示为(a1,a2, …,ai, …,an),其中ai (i=1,2, …,n)是属于数据对象的元素,通常也称其为线性表中的一个结点。 如26个英文字母的字母表(A, B, C, …, Z)是一个长度为26的线性表,其中的数据元素是单个字母字符。;在稍微复杂的线性表中,一个数据元素还可以由若干个数据项组成。例如,某班的学生情况登记表是一个复杂的线性表,表中每一个学生的情况就组成了线性表中的每一个元素,每一

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档