收藏 分享(赏)

数据结构严蔚敏清华大学高分笔记第一章new.docx

上传人:dzzj200808 文档编号:2244518 上传时间:2018-09-07 格式:DOCX 页数:5 大小:21.25KB
下载 相关 举报
数据结构严蔚敏清华大学高分笔记第一章new.docx_第1页
第1页 / 共5页
数据结构严蔚敏清华大学高分笔记第一章new.docx_第2页
第2页 / 共5页
数据结构严蔚敏清华大学高分笔记第一章new.docx_第3页
第3页 / 共5页
数据结构严蔚敏清华大学高分笔记第一章new.docx_第4页
第4页 / 共5页
数据结构严蔚敏清华大学高分笔记第一章new.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、数!据!结!构!复习手稿!第一章 绪论1.1 什么是数据结构数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的科学。数据结构描述现实世界实体的数学模型(非数值模型)及以上的操作在计算机中的标识和实现。1.2 基本概念和术语数据(data)是对客观事物的符号表示,在计算机科学中指所能输入到计算机中并被计算机程序处理的符号的总称。老师说的是能被计算机处理的符号。数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。可以是数值,可由若干个数据项(data item)组成。老师说数据项为数据元素的子集,也可以是数值。数

2、据项可以是组合项。数据对象(data object)是性质相同的 数据元素的集合,是 数据的一个子集。数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间存在着某种关系,这种数据元素之间的关系成为结构(structure) 。通常有四种基本结构:1.集合。2.线性结构。3.树形结构。4.图状结构或网状结构。结构中的“关系”描述的是数据元素之间的逻辑关系,因此又成为逻辑结构。数据结构在计算机中的表示(或映像)成为数据的物理结构,又称存储结构。计算机中最小单位是二进制的一位(bit) ,对任何数据元素都可用一个二进制位串表示。单位为元素或结点。当数

3、据元素由若干数据项组成时,整个数据元素位串中的一部分对应于各个数据项的位串称为数据域(data field) 。因此元素或节点可看成是数据元素在计算机中的映像。数据元素之间的关系在计算机中有两种表示方法:顺序映像和非顺序映像。并由此得到两种不同的存储结构:顺序存储和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序影响借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑关系。任何算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的存储结构。在不同编程环境中,存储结构可有不同的描述方法。当用高级程序设计语言进行编程时,通常可用高级编程

4、语言中提供的数据类型描述之。数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。如整形变量值为区间上的整数,定义在其上的操作为加减乘除等。按值的不同特性,数据类型分为两类:一类是非结构的原子类型(老师说简单性) ,值是不可分解的,如整形,字符型等。类一种是结构类型,结构类型的值由若干成份按照某种结构组成,因此是可分的,它的成份可以是非结构的,也可以是结构的。如数组的每个分量可以是整数,也可以是数据。数据结构看成“一组具有相同结构的值” ,结构类型可看成:一种数据结构和定义在数据结构上的一组操作组成。抽象数据类型(Abstract Data Type)ADT 指一个数

5、学模型(老师说数据结构)以及定义在该模型上的一组操作。它的定义仅取决于它的一组逻辑特性,不管内部如何变化,其数学特性不变。抽象的意义在于数据类型的数学抽象特性。抽象数据类型的软件模块(方法?)通常包含定义、表现和实现 3 个部分抽象数据类型值域中值(数据结构?)的不同特性,分为三种:原子类型(atomic data type)值是不可分解的,表示这类的较少,有时也必要定义新的原子数据类型如数位为 100 的整数。固定聚合类型(fixed-aggregate data type)属该类型的变量,其值由确定数目的成分按某种结构组成。如复数由两个实数依确定的次序构成。可变聚合类型(variable-

6、aggregate data type)构成可变聚合类型值的成份的数目不确定。基本操作名(参数表)初始条件(条件描述)操作结果(操作结果描述)1.基本操作(方法?)有两种参数:1.赋值参数只为操提供输入值,2. 引用参数以& 打头,除可提供输入值外,还将返回操作结果。2.初始条件描述了操作之前数据结构和参数应满足的条件,若不满足,返回相印的错误信息。3.操作结果说明操作完成之后,数据结构的变化和返回结果,若出初始条件没有,则省略。多型数据类型(polymorphic data type)指值的成份为不确定的数据类型老师说 ADT 两个特征,数据抽象:用 ADT 描述程序处理的实体时,强调的是它

7、本质的特征,和所能完成实现的功能,以及外部用户的接口(外部使用它的方法)数据封装性,将实体的外部特性和内部细节分开,对外部隐藏它内部实现的细节。数据结构和它的操作在实质上是一个整体。1.3 抽象数据类型的表现与实现高级编程语言中原有的数据类型叫固有数据类型,那么抽象数据类型就是需要通过固有数据类型来实现其操作。预定义常量和类型#defined TURE 1#defined FALSE 0#defined OK 1#defined ERROR 0#defined INFEASIBLE -1#defined OVERFLOW -2数据结构的表示(存储结构)用 typedef 藐视,数据元素类型约定

8、为 ElemType 有用户使用时自行定义当函数返回值为函数结果状态代码时,函数定义为 Status 类型。Status 其实就是一个 int 类型,当返回 ERROE 时就是 0,OK 就是 1,这就是 status 的取值!status 他他妈就是一个 int!1.4 算法和算法分析一、算法是为了解决一次问题而规定的一个有限长的操作策略。算法的五个特性:1. 有穷性:对于任意一组合法输入值,在执行有穷步骤之后一定能结束,算法中的每一步都能在有限时间内完成。2. 确定性:对于每种情况下所执行的操作,在算法中都有确切的规定,使读者不会产生二义性,并在任何条件下,算法只有一条执行路径。 (对同样

9、的输入只能得到相同的输出)3. 可行性:一个算法是能行的,都可以通过已经实现的基本操作运算有限次实现。4. 输入:一个算法有零个或多个输入。5. 输出:一个算法有一个或多个的输出。二、算法设计的要求1. 正确性:算法应当满足以特定的“规格说明”方式给出的需求。正确的理解有四个层次1) 程序中不含语法错误2) 程序对输入有满足要求的输出结果3) 程序对精心选择的、典型的、苛刻的带有刁难性的输入能够得出满足要求的结果4) 对一切合法的输入数据都能得出满足要求的结果。2. 可读性:算法主要是为了人的交流、其次才是机器执行。难懂的程序隐藏多错误,难以调试和修改。3. 健壮性:当输入非法数据时,算法也能

10、适应的做出反应或进行处理,不会产生莫名其妙的输出结果。4. 效率与低存储量的需求:效率指算法执行的时间。三、算法执行时间的相关(主要)因素:1. 算法选择的策略2. 问题的规模算法=控制结构 +原操作(固有数据类型的操作) (一般伪码语言)算法执行时间= 原操作的执行次数* 原操作的执行时间。算法的操作时间和原操作的执行只和成正比。在算法中选取一种对于研究的问题来说是基本操作的原操作,以该基本操作在算法中重复执行的次数作为算法时间的衡量准则算法的时间复杂度一般以最坏的算!算法中基本操作重复执行的次数是问题规模 n 的某个函数 f(n) ,记作:T( n)=O(f( n) )称为算法的渐进时间复杂度简称时间复杂度,频度称为该语句重复执行的次数第一章数据结构题集1.6 在程序设计中,常用下列三种不同的出错处理方式: (1) 用 exit 语句终止执行并报告错误;(2) 以函数的返回值区别正确返回或错误返回; (3) 设置一个整型变量的函数参数以区别正确返回或某种错误返回。 试讨论这三种方法各自的优缺点。 解:(1)exit 常用于异常错误处理,它可以强行中断程序的执行,返回操作系统。 (2)以函数的返回值判断正确与否常用于子程序的测试,便于实现程序的局部控制。(3)用整型函数进行错误处理的优点是可以给出错误类型,便于迅速确定错误。

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

当前位置:首页 > 高等教育 > 大学课件

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


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

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

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