《数据结构》(C语言版)第一章 绪论(精品·公开课件).ppt

《数据结构》(C语言版)第一章 绪论(精品·公开课件).ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构在计算机科学中的地位 数据结构是计算机软件和计算机应用专业的核心课程之一,由于在计算机系统软件和应用软件中都要用到各种数据结构,要想更有效地使用计算机,就必须学习数据结构的有关知识。 程序设计的实质是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构。 数据结构在软件从业人员的知识与技能结构中的地位 任何受过专业训练的程序员,对“数据结构”这门课程中涉及到的各种数据结构都不会陌生,但是在实际的编程工作中,大部分的数据结构都不会用到,而且也永远都不会用到。虽然如此,深入地理解基本数据结构的概念和实现细节,仍然是每个程序员的任务。这不仅仅是因为,掌握这些知识将有利于更加正确和灵活地应用它们,而且也是因为,对于语言背后的实现细节的求知欲是一个优秀程序员的素质。 --摘自《最基础的数据结构》 第一章 绪论 §1.1 什么是数据结构 例2 书目自动检索系统 例3 人机对奕问题 例4 教学计划编排问题 数据的逻辑结构:只抽象反映数据元素的逻辑关系。 有两种衡量算法效率的方法: 1.事后统计法:利用计算机内记时功能,用一组或多组相同的统计数据区分。 2.事前分析估计法:求出算法的一个时间界限函数。 时间复杂度随n变化情况的比较 例如:复数z1=3.0-2.3i,z2=-0.7+4.8i的存储结构。 顺序存储结构 链式存储结构 3.0 二、数据类型 在用高级程序语言编写的程序中,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。 例:C语言中,提供 int, char, float等基本数据类型, 数组、结构体、共用体、枚举等构造数据类型 指针、空(void)类型等。 用户也可用typedef 自己定义数据类型 typedef struct { int num; char name[20]; float score; } STUDENT; STUDENT stu1,stu2, *p; 数据类型 是一个 值的集合 和定义在此集合上的 一组操作 的总称。 不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。 数据类型可以分为两类: 一类是原子类型。另一类是结构类型。 引入数据类型的目的: 从硬件的角度看,是作为解释计算机内存中信息含义的一种手段。 对使用数据类型的用户来说,实现了信息的隐蔽,即将一切用户不必了解的细节都封装在类型中。 三、抽象数据类型 (Abstract Data Type 简称ADT) ADT定义: 指一个数学模型以及定义在该模型上的一组操作。 “抽象”的意义在于数据类型的数学抽象特性。 例如: 矩阵 +(求转置、加、乘、求逆、求特征值) 构成一个矩阵的抽象数据类型。 ADT的描述方法: 抽象数据类型可用三元组 (D,S,P) 表示。 其中:D 是数据对象; S 是 D 上的关系集; P 是对 D 的基本操作集。 ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉 赋值参数:只为操作提供输入值。 引用参数:以打头,除可提供输入值外, 还将返回操作结果。 初始条件:描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。 操作结果:说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。 例如,抽象数据类型复数的定义: 数据对象: D={e1,e2|e1,e2∈RealSet } 数据关系: R1={e1,e2 | e1是复数的实数部分 | e2 是复数的虚数部分 } ADT Complex { 基本操作: AssignComplex( Z, v1, v2 ) 操作结果:构造复数 Z,其实部和虚部 分别被赋以参数 v1 和 v2 的值。 DestroyComplex( Z) 操作结果:复数Z被销毁。 GetReal( Z, rea

文档评论(0)

花好月圆 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档