DATASTRUCTURE数据结构第1章.ppt_第1页
DATASTRUCTURE数据结构第1章.ppt_第2页
DATASTRUCTURE数据结构第1章.ppt_第3页
DATASTRUCTURE数据结构第1章.ppt_第4页
DATASTRUCTURE数据结构第1章.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构数据结构 DATA STRUCTUREDATA STRUCTURE 使用使用C C语言语言 学时数学时数: 4040 教材:数据结构使用C语言 西安交通大学出版社 朱战立,刘天时 数据结构的基本概念数据结构的基本概念 数据类型和抽象数据类型数据类型和抽象数据类型 C C语言的数据类型语言的数据类型 用用C C语言描述算法的注意事项语言描述算法的注意事项 算法设计目标和算法效率度量算法设计目标和算法效率度量 1.1 1.1 数据结构的基本概念数据结构的基本概念 数据:数据:数据是信息的载体,是描述客观事物的数据是信息的载体,是描述客观事物的 数、字符、以及所有能输入到计算机中,被计数、字符、以及所有能输入到计算机中,被计 算机程序识别和处理的符号的集合。算机程序识别和处理的符号的集合。 数值性数据数值性数据 非数值性数据非数值性数据 数据对象:数据对象:数据的子集。具有相同性质的数据数据的子集。具有相同性质的数据 成员(数据元素)的集合。成员(数据元素)的集合。 整数数据对象整数数据对象 N N = 0, = 0, 1, 1, 2, 2, 学生数据对象学生数据对象: :初等项(不可分割)、组初等项(不可分割)、组 合项(可再划分)合项(可再划分) 数据元素:是数据的最小单位,有时一个 数据元素由数据项组成(具有独立含义的 最小标识单位) 数据类型:具有相同性质的计算机数据集 合及在这个集合上的一组操作。 数据结构:由某一数据对象及该对象中所 有数据成员之间的关系组成。记为: Data_Structure = D, R 其中,D是某一数据对象,R是该对象 中所有数据成员之间的关系的有限集合。 数据结构依据视点的不同,分为数据逻辑结构和物理结数据结构依据视点的不同,分为数据逻辑结构和物理结 构:构: u逻辑结构:从解决问题的需要出发,为实现 必要的功能所建立的数据结构,它属于用户 的视图,是面向对象的。 u物理结构:指数据该如何在计算机中存放, 是数据逻辑结构的物理存储方式,是属于具 体实现的视图,是面向计算机的。 u关系:物理结构是逻辑数据的存储映象 逻辑结构: u线性结构 u非线性结构 物理结构: u顺序存储 u链接存储 u索引存储 u散列存储 “ “学生学生” ”表格表格 “课程”表格 线性结构中各数据成员之间的线性关系线性结构中各数据成员之间的线性关系: :有直接前驱和有直接前驱和 直接后继直接后继( (除最前、最后一个元素除最前、最后一个元素) ) 例:电话号码查询问题例:电话号码查询问题 方法方法1 1:顺序存储,顺序查找:顺序存储,顺序查找 方法方法2 2:有序顺序存储,二分查找:有序顺序存储,二分查找 姓名地址 李1 李2 张1 张2 王1 王2 方法方法3 3:部分有序,建立索引表:部分有序,建立索引表 姓名地址 李1 李2 张1 张2 王1 王2 姓地址 李 张 非线性结构中各数据成员之间的没有线性关系非线性结构中各数据成员之间的没有线性关系: :前驱和前驱和 后继可能多于一个后继可能多于一个 选课单包含如下信息 学学 号号 课程编号课程编号 成成 绩绩 时时 间间 学生选课系统中实体构成的网状关系学生选课系统中实体构成的网状关系 UNIXUNIX文件系统的系统结构图文件系统的系统结构图 树形结构树形结构 树树 二叉树二叉树 二叉搜索树二叉搜索树 堆结构堆结构 “最大最大”堆堆 “最小最小”堆堆 图结构图结构 网络结构网络结构 例:田径赛的时间安排问题例:田径赛的时间安排问题 姓名项项目1项项目2项项目3 丁1跳高跳远100M 马2标枪铅球 张3标枪100M200M 李4铅球200M跳高 王5跳远200M 跳高跳远 标枪 铅球 200M 100M 1 1、任一选手所选中的项目中应该两两有边相连;、任一选手所选中的项目中应该两两有边相连; 2 2、任一两个有边相连的顶点颜色(时间)不能相同。、任一两个有边相连的顶点颜色(时间)不能相同。 本课程讨论:本课程讨论: uu在解决问题时可能遇到的典型的逻辑在解决问题时可能遇到的典型的逻辑 结构(数据结构)结构(数据结构) uu逻辑结构的存储映象(存储实现)逻辑结构的存储映象(存储实现) uu数据结构的相关操作及其实现。数据结构的相关操作及其实现。 1.2 1.2 数据类型和抽象数据类型数据类型和抽象数据类型 数据类型数据类型 定义:定义:一个数据的集合一个数据的集合, , 以及定义于这个以及定义于这个 数据集合上的一组操作的总称。数据集合上的一组操作的总称。 C C语言中的数据类型语言中的数据类型 基本数据类型、基本数据类型、指针类型、数组类型、结 构体类型、公用体类型、枚举类型 抽象数据和抽象数据类型抽象数据和抽象数据类型 (ADTs: Abstract Data Types) 由用户定义,用以表示应用问题的由用户定义,用以表示应用问题的 数据模型数据模型 由由基本的数据类型基本的数据类型组成组成, , 并包括并包括一一 组相关的服务组相关的服务(或称操作)(或称操作) 信息隐蔽信息隐蔽和和数据封装数据封装,使用与实现,使用与实现 相分离(物理实现封装)相分离(物理实现封装) ADTADT:抽象数据类型名抽象数据类型名 数据对象:数据对象的定义数据对象:数据对象的定义 数据关系:数据逻辑关系的定义数据关系:数据逻辑关系的定义 基本操作:基本操作的定义基本操作:基本操作的定义 抽象数据类型的定义:抽象数据类型的定义: 操作名(参数表)操作名(参数表) 操作结果:操作结果描述操作结果:操作结果描述 基本操作的定义:基本操作的定义: 抽 象 数 据 类 型 1.3 1.3 C C语言的数据类型语言的数据类型 1 1、基本数据类型、基本数据类型 intint short; long; unsigned short; long; unsigned float float; double; long double float float; double; long double 2 2、指针类型、指针类型 3 3、数组类型数组类型 4 4、字符串、字符串 5 5、结构体类型、结构体类型 6 6、共用体类型、共用体类型 7 7、枚举类型、枚举类型 8 8、自定义类型、自定义类型 1.4 1.4 用用C C语言编写算法的注意事项语言编写算法的注意事项 1 1、避免使用出现二义性的表达式、避免使用出现二义性的表达式 i+;i+; i = + i;i = + i; i = 1; j = i + + + i - -;i = 1; j = i + + + i - -; 2 2、避免使用转向语句、避免使用转向语句 3 3、避免使用预处理避免使用预处理 4 4、避免函数返回值隐含说明、避免函数返回值隐含说明 1.5 1.5 算法设计目标和算法效率度量算法设计目标和算法效率度量 uu定义:定义:一个有穷的指令集,这些指令为解决某一一个有穷的指令集,这些指令为解决某一 特定任务规定了一个运算序列特定任务规定了一个运算序列 uu特性:特性: 输入输入 有有0 0个或多个输入个或多个输入 输出输出 有一个或多个输出有一个或多个输出( (处理结果处理结果) ) 确定性确定性 每步定义都是确切、无歧义的每步定义都是确切、无歧义的 有穷性有穷性 算法应在执行有穷步后结束算法应在执行有穷步后结束 有效性有效性 每一条运算应足够基本每一条运算应足够基本 算法的描述算法的描述: :c+,c,PASCALc+,c,PASCAL等语言等语言 算法有这样一些特点:算法有这样一些特点: 1 1、有穷性:要求序列中的指令是有限的;每条指令的执、有穷性:要求序列中的指令是有限的;每条指令的执 行包含有限的工作量;整个指令序列的执行在有限的时行包含有限的工作量;整个指令序列的执行在有限的时 间内结束。间内结束。 2 2、确定性:算法中的每一个步骤都必须是确定的,而不、确定性:算法中的每一个步骤都必须是确定的,而不 应当含糊、模棱两可。应当含糊、模棱两可。 3 3、有零个或多个输入、有零个或多个输入 4 4、有一个或多个输出、有一个或多个输出 5 5、有效性:算法中的每一个步骤都应当能被有效的执行、有效性:算法中的每一个步骤都应当能被有效的执行 ,并得到确定的结果。例如:被零除的计算动作是不能,并得到确定的结果。例如:被零除的计算动作是不能 被有效执行的。被有效执行的。 uu设计算法的基本方法设计算法的基本方法: :把一个具体问题转变成一个算法把一个具体问题转变成一个算法 uu事例学习:事例学习:选择排序问题选择排序问题 uu明确问题:明确问题:非递减排序非递减排序 uu解决方案:解决方案:逐个选择最小数据逐个选择最小数据 uu算法框架:算法框架: for ( for ( intint i= i=0;0; i=0) j-; return i;return i; 此问题不仅与规模此问题不仅与规模 n n 有关,而且与数组有关,而且与数组A A中各元中各元 素的取值有关。素的取值有关。 例:例: fact(n)fact(n) if (n = 1) return 1; if (n = 1) return 1; else return (n*fact(n-1); else return (n*fact(n-1); 设设 fact fact 的运行时间函数为的运行时间函数为T T(n n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论