[精品]数据结构课件吴伟民编著

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章 绪论
1.1 什么是数据结构
1.2 基本概念和术语
1.3 抽象数据类型的表示和实现 1.4 算法和算法分析
第一章
教学目的:
绪论
(1)了解数据结构及算法的概念;
(2)掌握计算语句频度和估算算法
时间复杂度的方法。 教学的重点和难点:估算算法时间复
Fra Baidu bibliotek
杂度。
1.1 什么是数据结构
什么是程序、软件?
a1 a3 a5 a2 a4 a6
a1 a2 a3 a4 a5 a6
数据结构: 带结构的数据元素的集合
再例,在一维数组 {a1, a2, a3, a4, a5, a6} 的数 据元素之间存在如下的次序关系:
{<ai, ai+1>| i=1, 2, 3, 4, 5}
可见,不同的“关系”构成不同的“结构” 或者说,数据结构是相互之间存在着某种逻 辑关系的数据元素的集合。
序偶:由两个具有给定次序的元素x和y所组成的 序列,记为<x,y>。 关系:是指集合中元素之间的相互联系。 是集合中某些元素所构成的序偶的集合。 例如 D={A,B,C,D,E} R={<A,D>,<D,C>,<D,E>}和 R={<A,C>,<B,D>,<A,D>} 都是D上的一种关系。
数据结构: 带结构的数据元素的集合
C6
求解非数值计算的问题:
主要考虑的是设计出合适的数据结构
及相应的算法。
即:首先要考虑对相关的各种信息如 何表示、组织和存储? 因此,可以认为:数据结构是一门讨 论“描述现实世界实体的数学模型 (非数值计算)及其上的操作在计算机 中如何表示和实现”的学科。
数据结构课程的形成和发展:
形成阶段: 60年代初期,“数据结构”有关的内容散见 于操作系统、编译原理和表处理语言等课程。 1968年,“数据结构”被列入美国一些大 学计算机科学系的教学计划。 发展阶段: 数据结构的概念不断扩充,包括了网络、集 合代数论、关系等“离散数学结构”的内容。 70年代后期,我国高校陆续开设该课程。
具体来说,数据结构包含三个方面的内容,即 数据的逻辑结构,数据的存贮结构和对数据所 施加的运算
数据的逻辑结构
逻辑结构:指数据元素之间逻辑关系的整体。
关联方式或邻接关系
学籍管理问题中,表项之间的逻辑关系指的是什么? 人机对弈问题中,格局之间的逻辑关系指的是什么?
教学计划编排问题中,课程之间的逻辑关系指的是什么?
……
例3 教学计划编排问题——图结构
如何表示课程之间的先修关系?
编号
C1
C2 C3 C4 C5 C6
课程名称
高等数学
计算机导论 离散数学 程序设计 数据结构 计算机原理
先修课

无 C1 C 1, C 2 C 3, C 4 C 2, C 4
C3
C5 C7
C1 C2
C4
C7
数据库原理
C 4, C 5, C 6
上机安排 上机地点:机房 上机时间: 上机内容: 要求:
所有作业必须独立完成 算法作业必须经上机调试通过 上机考勤3次缺席,按不及格处理 发现上机时间上网,按缺席一次处理
课程重要性
核心基础课程 编程基础 考研课程 计算机等级考试课程 程序员考试课程 请同学们把本课程的学习重视起来!!!
数据结构
主讲教师
邢振祥
1
课程安排
总学时:60 讲课学时:50 实验学时:10 教材: 《数据结构C语言版》严蔚敏、吴伟民
-----清华大学出版社
《数据结构C语言篇》习题与解析 李春葆
-----清华大学出版社
课程要求
课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间
假设用三个 4 位的十进制数表示一个含 12 位 数的十进制数。 例如: 3214,6587,9345 ─ a1(3214),a2(6587),a3(9345)
则在数据元素 a1、a2 和 a3 之间存在着
“次序”关系
a1,a2、a2,a3
3214,6587,9345 ≠ 6587,3214,9345 a1 a2 a3 a2 a1 a3
学号 0001 0002 0003 … 姓名 王 军 李 明 汤晓影 … 性别 男 男 女 … 出生日期 1983/09/02 1982/12/25 1984/03/26 … 政治面貌 团员 党员 团员 …
例2 人机对弈问题——树结构
如何实现对弈?各格局之间是什么关系?
……..
……..
……
……
…...
《数据结构课程》所处的地位:
1.2 基本概念和术语
数据(Data):是对信息的一种符号表示。在计算机科学 中是指所有能输入到计算机中并被计算机程序处理的 符号的总称。 数据元素(Data Element):是数据的基本单位,在计算 机程序中通常作为一个整体进行考虑和处理。 一个数据元素可由若干个数据项组成。数据项是 数据的不可分割的最小单位。 三者之间的关系:数据 > 数据元素 > 数据项 例:班级通讯录 > 个人记录 > 姓名、年龄…… 数据对象(Data Object):是性质相同的数据元素的集 合。是数据的一个子集。
数值计算解决问题的一般步骤:
数学模型→选择计算机语言→编出程序→ 测试→最终解答。 数值计算的关键是:如何得出数学模型 (方程)? 程序设计人员比较关注程序设计的技巧。
非数值计算问题:
数据元素之间的相互关系一般无法用数学 方程加以描述
例1 学籍管理问题——表结构
完成什么功能?各表项之间是什么关系?
N.沃思(Niklaus Wirth)教授提出:
程序=算法+数据结构
程序设计:为计算机处理问题编制一组指 令集 算法:处理问题的策略 数据结构:问题的数学模型
软件=程序+文档(软件工程的观点)
电子计算机的主要用途:
早期:
主要用于数值计算。
后来:
处理逐渐扩大到非数值计算领域 (能处理多种复杂的具有一定结构关系的 数据)。
数据结构: 带结构的数据元素的集合
又例,在2行3列的二维数组{a1, a2, a3, a4, a5, a6} 中六个元素之间 a1 a2 a3 存在两个关系: a4 a5 a6
行的次序关系:
row = {<a1,a2>,<a2,a3>,<a4,a5>,<a5,a6>}
列的次序关系:
col = {<a1,a4>,<a2,a5>,<a3,a6>}
相关文档
最新文档