数据结构C语言.ppt

数据结构C语言

第一章 绪 论 ;1.1 数据结构讨论的范畴;1.1 数据结构讨论的范畴; 结构静力分析计算 ;非数值计算的程序设计问题;例二:计算机对弈;例三:足协的数据库管理;概括地说:;1.2 基本概念;一、数据与数据结构;是数据(集合)中的一个“个体”; 数据项:;数据结构:;又例,在2行3列的二维数组{a1, a2, a3, a4, a5, a6} 中六个元素之间 存在两个关系:;再例,在一维数组 {a1, a2, a3, a4, a5, a6} 的数据元素之间存在如下的次序关系:;数据的逻辑结构可归结为以下四类:;数据结构的形式定义为:;数据的存储结构 ;数据元素的映象方法:;关系的映象方法:;链式映象;在不同的编程环境中,;例如:;二、数据类型;例如,C 语言中提供的基本数据类型有:; 数据类型 是一个 值的集合 和定义在此集合上的 一组操作 的总称。;三、抽象数据类型 (Abstract Data Type 简称ADT);ADT 有两个重要特征:;例如,抽象数据类型复数的定义:;基本操作:; GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。;假设:z1和z2是上述定义的复数;抽象数据类型的描述方法;ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名;赋值参数 只为操作提供输入值。 引用参数 以打头,除可提供输入值外, 还将返回操作结果。;抽象数据类型的表示和实现;typedef struct { float realpart; float imagpart; }complex;;float GetReal( cpmplex Z ); // 返回复数 Z 的实部值;// -----基本操作的实现;1.3 算法和算法的衡量; 算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性:;1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即: 算法中的每个步骤都能在有限时间内完成。;3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。; 5.有输出 它是一组与“输入”有确 定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。;二、算法设计的原则;1.正确性; c.程序对于精心选择???、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;;2. 可读性;3.健壮性;4.高效率与低存储量需求;三、算法效率的 衡量方法和准则;和算法执行时间相关的因素:; 一个特定算法的“运行工作量” 的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。; 假如,随着问题规模 n 的增长,算法执行时间的增长率和 f(n) 的增长率相同,则可记作:;如何估算 算法的时间复杂度?;算法 = 控制结构 + 原操作 (固有数据类型的操作); 从算法中选取一种对于所研究的问题来说是 基本操作 的原操作,以该基本操作 在算法中重复执行的次数 作为算法运行时间的衡量准则。;例 一 两 个 矩 阵 相 乘;例 二 选 择 排 序;例 三 起 泡 排 序;四、算法的存储空间需求;算法的存储量包括:; 若输入数据所占空间只取决于问题 本身,和算法无关,则只需要分析除 输入和程序之外的辅助变量所占额外 空间。;1. 熟悉各名词、术语的含义,掌握基本概念。

文档评论(0)

1亿VIP精品文档

相关文档