- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ds200901绪论
北京化工大学信息学院 数据结构 * 数据结构 北京化工大学 信息科学与技术学院计算机系 史晟辉 shishenghui@ shish@ 1.1 什么是数据结构 1.2 基本概念和术语1.3 抽象数据类型的表示与实现 1.4 算法和算法分析 第 1 章 概论 1.1 什么是数据结构 Niklaus Wirth: Algorithm + Data Structures = Programs 程序设计:为计算机处理问题编制一组指令集 。 算法:处理问题的策略。 数据结构:问题的数学模型。 例: 数值计算的程序设计问题 结构静力分析计算 全球天气预报 举例说明 —— 线性代数方程组 —— 环流模式方程(球面坐标系) 非数值计算的程序设计问题 数值计算的程序设计问题 程序设计问题 解决 方法 ? 2. 计算机对弈 算法? 模型? 对弈的规则和策略 棋盘及棋盘的格局 3. 足协的数据库管理 算法? 模型? 需要管理的项目?如何管理? 用户界面? 各种表格 例:非数值计算的程序设计问题 基本操作是“比较两个数的大小” 取决于整数值的范围 1. 求一组(n个)整数中的最大值 算法? 模型? ● 数据 ● 数据元素(记录、元组) ● 数据对象 ● 数据项(字段、属性、域) 1.2 基本概念和术语 ● 数据结构定义 ● 数据结构三个层次 ● 数据 ● 数据元素(记录、元组) ● 数据对象 ● 数据项(字段、属性、域) 1.2 基本概念和术语 学号 姓名 英语 数学 物理 1 赵芳 90 85 93 2 钱宁 88 92 80 3 孙亮 70 80 77 …. …. …. …. …. 数据 数据元素 数据项 数据对象 车型 生产商 颜色 载重 价格 DF141 二汽 兰 5吨 13万 例: 1.2 基本概念和术语 ● 数据结构定义 ● 数据结构三个层次 数据结构 逻辑结构 存储结构 操作 ● 数据结构三个层次 数据结构定义 是对数据元素之间的逻辑关系、数据的存储方式以及对数据的操作的抽象描述。 ● 数据结构定义 ● 数据的逻辑结构 非线性结构 线性结构(线性表)(元素之间存在一对一的关系) 树 (元素之间存在一对多的关系) 图 (元素之间存在多对多的关系) 学号 姓名 性别 … 01 王芳 女 … … … … … X X X O X O X O X …… …… 沈阳 北京 西安 长沙 广州 重庆 乌鲁木齐 拉萨 集合 (元素之间具有同“属一个集合”的关系) 2 3 5 7 18 29 31 36 ● 数据的存储结构(物理结构) 顺序存储方法 散列存储方法 链接存储方法 索引存储方法 稠密索引(Dense Index) 稀疏索引(Sparse Index) 0 1 2 3 .. ● 逻辑结构与存储结构的关系 一种逻辑结构可以用不同的存储结构来实现。 逻辑结构决定了算法的设计。 存储结构决定了算法的实现。 遍历: 在数据结构的各个元素中移动,查看所有数据元素 插入: 向数据结构中添加新元素 更新: 修改或替代数据结构中的数据元素 删除: 在数据结构中去除指定的元素 查找: 在数据结构中查找满足条件的元素 排序: 把数据结构中的元素按要求重新排序 ● 数据的操作 1.3 抽象数据类型的表示与实现 ● 数据类型 ● 抽象数据类型 例如,C 语言中提供的基本数据类型有: 整型 int 浮点型 float 字符型 char 双精度型 double 数据类型 是一个 值的集合和定义在此集合上的 一组操作的总称。 不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。 ● 数据类型 是指一个数学模型以及定义在此数学模型上的一组操作。 ● 抽象数据类型 (Abstract Data Type 简称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, realPart ) 初始条件:复数已存在。 操作结果:用realPart返回复数Z的实部值。 GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。 Add( z1
文档评论(0)