第2.3讲数据结构概述 xin.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2.3讲数据结构概述 xin

第二章 常用数据结构及其运算 【重点和难点】 本章讨论的都是一些基本概念,因此没有难点,重点在于了解有关数据结构的各个名词和术语的含义,以及语句频度和时间复杂度的估算。 【知识点】   数据、数据元素(结点)、数据结构、数据类型、算法及其设计原则、时间复杂度、空间复杂度 “数据结构”的教学要求: 学会分析研究计算机加工的数据结构的特性,以便为工程应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并掌握算法的时间复杂度和空间复杂度估算方法,能够用类C语言描述算法。 另一方面,“数据结构”的学习过程也是复杂程序设计的训练过程,要求学生使用C语言编写完整的上机程序,并且做到程序结构清楚和正确易读。 “数据结构”的教学要求: 在数据结构的讨论中重点研究的是“结构”,而把组成结构的那些元素抽象成一个“结点”。 结点是数据结构中的基本单位,在实际应用中一个结点可以是一个字符、一个整数,也可以是一个结构。 通常称为的“动态结构”是指一大类可以方便地进行插入删除操作的数据结构,例如链表; 而对应的所谓“静态结构” 是指一大类不适合频繁进行插入删除操作的结构,例如顺序表。 2.1 数据结构的引入 瑞士的计算机专家在1976年出版了一本书,书名为《算法+数据结构 = 程序设计》,它正说明了数据结构在程序设计中的作用。程序设计的实质即为计算机处理问题编制一组“指令”,首先需要解决两个问题:即算法和数据结构。算法即处理问题的策略,而数据结构即问题的数学模型。   很多数值计算问题的数学模型通常可用一组线性或非线性的代数方程组或微分方程组来描述,而大量非数值计算问题的数学模型无法用方程来描述,必须用数据结构的概念来描述。 举例:几个需要用数据结构解决的问题 例1:图书馆的书目自动化检索系统问题。当你想借阅一本参考资书但不知道书库中是否有的时候;如果利用计算机实现自动检索,则计算机处理的对象便是这些书目信息(编号、分类号、书名、作者名、出版单位和出版时间等若干项组成)。每一本书都有唯一的一个编号,但不同的书目之间可能有相同的书名,或者有相同的作者名,或者有相同的分类号。 例2: 办公自动化--信息管理系统 信息删除、增加、修改、查找和排序等。  例3: 煤气管道的铺设问题。如图所示,需为某城市的各小区之间铺设煤气管道,对 n 个小区只需铺设 n-1 条管线,由于地理环境不同等因素使各条管线所需投资不同,如何使投资成本最低?这是一个讨论图任何生成树的问题。 以上所举例子中的数学模型正是数据结构要讨论的问题。 因此,从广义角度讲,数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算) 在计算机中如何表示,及在其上的操作如何实现”的学科。 数据元素分为两大类: 一类:不可分割的“原子”型数据元素,如:整数“5”,字符 “N” 等; 另一类:由多个款项构成的数据元素(是数据结构中讨论的数据的基本单位),其中每个款项被称为一个“数据项”。 例如描述一个学生的信息的数据元素可由“姓名、年龄、性别、班级、入学成绩”等6个数据项组成。其中的出生日期又可以由三个数据项:“年”“月”和“日”组成,则称“出生日期”为“组合项”,而其它不可分割的数据项为“原子项”。数据项是数据结构中讨论的“最小单位”。 关键字: 指的是能识别一个或多个数据元素的数据项。若能起唯一识别作用,则称之为 “主” 关键字,否则称之为 “次” 关键字。在由多个数据项构成的数据元素中必定存在关键字。 举例: 如,可以用下述数据结构来描述2行3列的矩阵:它是一个含6个数据元素{a1,a2,a3,a4,a5,a6} 的集合,且集合上存在“行关系”和“列关系”两个次序关系, 行关系为{a1,a2,a2,a3,a4,a5,a5,a6}, 列关系为{a1,a4,a2,a5,a3,a6}。 可见,即使数据元素集合相同,而其上的关系不同,则构成的数据结构不同。 数据元素之间还可能存在非线性的关系,如前面提到的“管道分布图”,又如管理工作中人和人之间的关系是一种层次关系。例如,某校一个年级有两个班,由一个年级班主任带班,每个班按所住宿舍分组,他们之间的关系可如下描述:  { 班主任,班长1,班主任,班长2,班长1,舍长1,……,班长2,舍长p,舍长1,学生1,舍长1,学生2,……,舍长p,学生n },如下图所示。 数据结构的形式定义:  数据结构的形式定义:数据结构是一个二元组   Data_Structures = ( D,R )   其中:D是数据元素的有限集,      R是D上关系的有限集。 按关系或

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档