收藏 分享(赏)

2017年数据结构c语言版 算法与数据结构ppt模板课件.doc

上传人:weiwoduzun 文档编号:5397951 上传时间:2019-02-28 格式:DOC 页数:38 大小:36KB
下载 相关 举报
2017年数据结构c语言版 算法与数据结构ppt模板课件.doc_第1页
第1页 / 共38页
2017年数据结构c语言版 算法与数据结构ppt模板课件.doc_第2页
第2页 / 共38页
2017年数据结构c语言版 算法与数据结构ppt模板课件.doc_第3页
第3页 / 共38页
2017年数据结构c语言版 算法与数据结构ppt模板课件.doc_第4页
第4页 / 共38页
2017年数据结构c语言版 算法与数据结构ppt模板课件.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、12017 年数据结构 c 语言版 算法与数据结构 ppt 模板课件导读:就爱阅读网友为您分享以下“2017 年数据结构 c语言版 算法与数据结构 ppt 模板课件”资讯,希望对您有所帮助,感谢您对 的支持!算法与数据结构2第 1 章绪 论目前,计算机已深入到社会生活的各个领域,其应用已不 再仅仅局限于科学计算,而更多的是用于控制,管理及数据处 理等非数值计算领域。计算机是一门研究用计算机进行信息表 示和处理的科学。这里面涉及到两个问题:信息的表示,信息 的处理。 信息的表示和组织又直接关系到处理信息的程序的效率。 随着应用问题的不断复杂,导致信息量剧增与信息范围的拓宽, 使许多系统程序和应

2、用程序的规模很大,结构又相当复杂。因 此,必须分析待处理问题中的对象的特征及各对象之间存在的 关系,这就是数据结构这门课所要研究的问题。3计算机求解问题的一般步骤编写解决实际问题的程序的一般过程: 如何用数据形式描述问题?即由问题抽象出一个适当的数学模型; 问题所涉及的数据量大小及数据之间的关系; 如何在计算机中存储数据及体现数据之间的关系? 处理问题时需要对数据作何种运算? 所编写的程序的性能是否良好?上面所列举的问题基本上由数据结构这门课程来回答。41.1 数据结构及其概念算法与数据结构是计算机科学中的一门综合性专业基础课。是介于数学、计算机硬件、计算机软件三者之间的一门核 心课程,不仅是

3、一般程序设计的基础,而且是设计和实现编译 程序、操作系统、数据库系统及其他系统程序和大型应用程序 的重要基础。51.1.1 数据结构的例子例 1:电话号码查询系统设有一个电话号码薄,它记录了 N 个人的名字和其相应的电 话号码,假定按如下形式安排:(a1, b1),(a2, b2),(an, bn), 其中 ai, bi(i=1,2n) 分别表示某人的名字和电话号码。 本问 题是一种典型的表格问题。如表 1-1,数据与数据成简单的一对 一的线性关系。姓名 陈海 李四锋 。 。 。 表 1-1 电话号码 13612345588 13056112345 。 。 。 线性表结构6例 2:磁盘目录文件

4、系统磁盘根目录下有很多子目录及文 件,每个子目录里又可以包含多个子 目录及文件,但每个子目录只有一个 父目录,依此类推: 本问题是一种典型的树型结构问 题,如图 1-1 ,数据与数据成一对多 的关系,是一种典型的非线性关系结 构树形结构。图 1-1 树形结构7例 3:交通网络图从一个地方到另外一个地方可以有多条路径。本问题是一种 典型的网状结构问题,数据与数据成多对多的关系,是一种非 线性关系结构。广州 佛山 惠州东莞中山 深圳 珠海 图 1-2 网状结构81.1.2 基本概念和术语数据(Data) :是客观事物的符号表示。在计算机科学中指的 是所有能输入到计算机中并被计算机程序处理的符号的总

5、称。 数据元素(Data Element) :是数据的基本单位,在程序中通 常作为一个整体来进行考虑和处理。一个数据元素可由若干个数据项(Data Item)组成。数据项是 数据的不可分割的最小单位。数据项是对客观事物某一方面特性 的数据描述。数据对象(Data Object):是性质相同的数据元素的集合,是 数据的一个子集。如字符集合 C=A,B,C, 。9数据结构(Data Structure):是指相互之间具有 (存在)一定联 系(关系)的数据元素的集合。元素之间的相互联系(关系)称为逻 辑结构。数据元素之间的逻辑结构有四种基本类型,如图 1-3 所 示。 集合:结构中的数据元素除了“同

6、属于一个集合”外, 没有其它关系。 线性结构:结构中的数据元素之间存在一对一的关系。 树型结构:结构中的数据元素之间存在一对多的关系。 图状结构或网状结构:结构中的数据元素之间存在多对 多的关系。10图 1-3四类基本结构图1.1.3 数据结构的形式定义数据结构的形式定义是一个二元组: Data-Structure=(D,S) 其中:D 是数据元素的有限集,S 是 D上关系的有限集。例 2:设数据逻辑结构 B=(K ,R)K=k1, k2, , k9 R= k1, k3,k1, k8,k2, k3,k2, k4, k2, k5,k3, k9,k5, k6,k8, k9, k9, k7,k4,

7、k7,k4, k6 画出这逻辑结构的图示,并确定那些是起点,那些是终点11数据元素之间的关系可以是元素之间代表某种含义的自然关 系,也可以是为处理问题方便而人为定义的关系,这种自然或 人为定义的 “关系”称为数据元素之间的逻辑关系,相应的结 构称为逻辑结构。1.1.4 数据结构的存储方式数据结构在计算机内存中的存储包括数据元素的存储和元 素之间的关系的表示。元素之间的关系在计算机中有两种不同的表示方法:顺序 表示和非顺序表示。由此得出两种不同的存储结构:顺序存储 结构和链式存储结构。 顺序存储结构:用数据元素在存储器中的相对位置来表12 链式存储结构:在每一个数据元素中增加一个存放另一个元素地

8、址的指针(pointer ),用该指针来表示数据元素之间 的逻辑结构(关系)。例:设有数据集合 A=3.0,2.3,5.0,-8.5,11.0 ,两种不同的存储结构。 顺序结构:数据元素存放的地址是连续的; 链式结构:数据元素存放的地址是否连续没有要求。 数据的逻辑结构和物理结构是密不可分的两个方面,一个 算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所 采用的存储结构。 在 C 语言中,用一维数组表示顺序存储结构;用结构体类型 表示链式存储结构。13数据结构的三个组成部分: 逻辑结构: 数据元素之间逻辑关系的描述D_S=(D,S)存储结构: 数据元素在计算机中的存储及其逻辑关系的表现称

9、为数据的存储结构或物理结构。数据操作: 对数据要进行的运算。本课程中将要讨论的三种逻辑结构及其采用的存储结构如 图 1-4 所示。14逻辑结构线性表树物理结构顺序存储结构 链式存储结构 复合存储结构图图 1-4逻辑结构与所采用的存储结构数据的逻辑结构 线性结构 受限线性表 一般线性表 栈和队列 线性表推广 串 数组 集合 广义表 非线性结构 树形结构 一般树 二叉树 图状结构 有向图 无向图图 1-5数据逻辑结构层次关系图151.1.5 数据类型数据类型(Data Type):指的是一个值的集合和定义在该值 集上的一组操作的总称。数据类型是和数据结构密切相关的一个概念。 在 C 语言中 数据类

10、型有:基本类型和构造类型。 数据结构不同于数据类型,也不同于数据对象,它不仅要 描述数据类型的数据对象,而且要描述数据对象各元素之间的 相互关系。161.1.6 数据结构的运算数据结构的主要运算包括: 建立(Create)一个数据结构; 消除(Destroy)一个数据结构; 从一个数据结构中删除(Delete)一个数据元素; 把一个数据元素插入(Insert)到一个数据结构中; 对一个数据结构进行访问(Access); 对一个数据结构( 中的数据元素)进行修改(Modify); 对一个数据结构进行排序(Sort) ; 对一个数据结构进行查找(Search)。171.2 抽象数据类型抽象数据类型

11、(Abstract Data Type ,简称 ADT):是指一个 数学模型以及定义在该模型上的一组操作。ADT 的定义仅是一组逻辑特性描述, 与其在计算机内的表 示和实现无关。因此,不论 ADT 的内部结构如何变化,只要其 数学特性不变,都不影响其外部使用。ADT 的形式化定义是三元组:ADT=(D,S ,P)其中:D 是数据对象,S 是 D 上的关系集,P 是对 D 的基本操作集。18ADT 的一般定义形式是: ADT 抽象数据类型名 数据对象: 数据对象的定义 数据关系: 数据关系的定义 基本操作: 基本操作的定义 ADT 抽象数据类型名 其中数据对象和数据关系的定义用伪码描述。 基本操

12、作的定义是:基本操作名(参数表)初始条件: 初始条件描述 操作结果: 操作结果描述19 初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失败,返回相应的出错信息。 操作结果:描述操作正常完成之后,数据结构的变化状 况和 应返回的结果。201.3 算法分析初步1.3.1 算法算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是 指令的有限序列,其中每一条指令表示一个或多个操作。 算法具有以下五个特性 有穷性: 一个算法必须总是在执行有穷步之后结束,且 每一步都在有穷时间内完成。 确定性:算法中每一条指令必须有确切的含义。不存在二 义性。且算法只有一个入口和

13、一个出口。 可行性: 一个算法是能行的。即算法描述的操作都可以 通过已经实现的基本运算执行有限次来实现。21 输入: 一个算法有零个或多个输入,这些输入取自于某 个特定的对象集合。 输出: 一个算法有一个或多个输出,这些输出是同输入 有着某些特定关系的量。一个算法可以用多种方法描述,主要有:使用自然语言描 述;使用形式语言描述;使用计算机程序设计语言描述。算法和程序是两个不同的概念。一个计算机程序是对一个 算法使用某种程序设计语言的具体实现。算法必须可终止意味 着不是所有的计算机程序都是算法。在本门课程的学习、作业练习、上机实践等环节,算法都 用 C 语言来描述。在上机实践时,为了检查算法是否

14、正确,应221.3.2 算法设计的要求评价一个好的算法有以下几个标准 正确性(Correctness ): 算法应满足具体问题的需求。 可读性(Readability): 算法应容易供人阅读和交流。可 读性好的算法有助于对算法的理解和修改。 健壮性(Robustness) : 算法应具有容错处理。当输入非 法或错误数据时,算法应能适当地作出反应或进行处理,而 不会产生莫名其妙的输出结果。 通用性(Generality) : 算法应具有一般性 ,即算法的处 理结果对于一般的数据集合都成立。23 效率与存储量需求: 效率指的是算法执行的时间;存储 量需求指算法执行过程中所需要的最大存储空间。一般地

15、, 这两者与问题的规模有关。1.3.3 算法效率的度量算法执行时间需通过依据该算法编制的程序在计算机上运 行所消耗的时间来度量。其方法通常有两种: 事后统计:计算机内部进行执行时间和实际占用空间的统计。问题:必须先运行依据算法编制的程序;依赖软硬件环境, 容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。24与此相关的因素有: 依据算法选用何种策略; 问题的规模; 程序设计的语言; 编译程序所产生的机器代码的质量; 机器执行指令的速度;撇开软硬件等有关部门因素,可以认为一个特定算法“运行 工作量”的大小,只依赖于问题的规模(通常用 n 表示) ,或 者说,它是问题

16、规模的函数。25算法分析应用举例算法中基本操作重复执行的次数是问题规模 n 的某个函数, 其时间量度记作 T(n)=O(f(n),称作算法的渐近时间复杂度 (Asymptotic Time complexity),简称时间复杂度。 一般地,常用最深层数据所占用的存储空间; 辅助(存储) 空间。 一般地,算法的空间复杂度指的是辅助空间。 一维数组 an: 空间复杂度 O(n)26习题一1 简要回答术语:数据,数据元素,数据结构,数据类型。 2 数据的逻辑结构?数据的物理结构?逻辑结构与物理结构的 区别和联系是什么? 3 数据结构的主要运算包括哪些? 4 算法分析的目的是什么?算法分析的主要方面是

17、什么? 5 分析以下程序段的时间复杂度,请说明分析的理由或原因。27Sum1( int n ) int p=1, sum=0, m ; for (m=1; m=n; m+) p*=m ; sum+=p ; return (sum) ; 递归函数fact( int n ) if (n=1) return(1) ; else return( n*fact(n-1) ; Sum2( int n ) int sum=0, m, t ; for (m=1; m=n; m+) p=1 ; for (t=1; t=m; t+) p*=t ; sum+=p ; return (sum) ; 28第 2 章线性

18、表线性结构是最常用、最简单的一种数据结构。而线性表是 一种典型的线性结构。其基本特点是线性表中的数据元素是有 序且是有限的。在这种结构中: 存在一个唯一的被称为“第一个 ”的数据元素; 存在一个唯一的被称为“最后一个”的数据元素; 除第一个元素外,每个元素均有唯一一个直接前驱; 除最后一个元素外,每个元素均有唯一一个直接后继。292.1 线性表的逻辑结构2.1.1 线性表的定义线性表(Linear List) :是由 n(n0)个数据元素( 结点)a1, a2, an 组成的有限序列。该序列中的所有结点具有相同的数 据类型。其中数据元素的个数 n 称为线性表的长度。 当 n=0 时,称为空表。当 n0 时,将非空的线性表记作: (a1,a2,an)a1 称为线性表的第一个(首)结点,an 称为线性表的最后一个(尾) 结点。30a1,a2,ai-1 都是 ai(2i n)的前驱,其中 ai-1 是 ai 的直接前驱;ai+1,ai+2,an 都是 ai(1i n-1)的后继,其中 ai+1是 ai 的直接后 继。2.1.2 线性表的逻辑结构线性表中的数据元素 ai 所代表的具体含义随具体应用的不同 而不同,在线性表的定义中,只不过是一个抽象的表示符号。 线性表中的结点可以是单值元素(每个元素只有一个数据 项) 。 例 1: 26 个英文字母组成的字母表: (A,B,C、Z)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报