数据结构吴伟民编著
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值计算解决问题的一般步骤:
数学模型→选择计算机语言→编出程序→ 测试→最终解答。 数值计算的关键是:如何得出数学模型 (方程)? 程序设计人员比较关注程序设计的技巧。
非数值计算问题:
数据元素之间的相互关系一般无法用数学 方程加以描述
例1 学籍管理问题——表结构
完成什么功能?各表项之间是什么关系?
数据的逻辑结构
逻辑结构:指数据元素之间逻辑关系的整体。
关联方式或邻接关系
学籍管理问题中,表项之间的逻辑关系指的是什么? 人机对弈问题中,格局之间的逻辑关系指的是什么? 教学计划编排问题中,课程之间的逻辑关系指的是什么?
数据的逻辑结构是从具体问题抽象出来的数据模型
逻辑结构是从逻辑关系上描述数据,它与数据的 存储无关,是独立于计算机的。
上机安排 ❖上机地点:机房 ❖上机时间: ❖上机内容: ❖要求:
所有作业必须独立完成 算法作业必须经上机调试通过
上机考勤3次缺席,按不及格处理
发现上机时间上网,按缺席一次处理
课程重要性
❖核心基础课程 ❖编程基础 ❖考研课程 ❖计算机等级考试课程 ❖程序员考试课程
请同学们把本课程的学习重视起来!!!
则在数据元素 a1、a2 和 a3 之间存在着
“次序”关系 a1,a2、a2,a3
3214,6587,9345 ≠ 6587,3214,9345
a1 a2 a3
a2 a1 a3
数据结构: 带结构的数据元素的集合
又例,在2行3列的二维数组{a1, a2, a3, a4, a5, a6}
中六个元素之间 存在两个关系:
学号 0001 0002 0003
…
姓名 王军 李明 汤晓影
…
性别 男 男 女 …
出生日期 政治面貌
1983/09/02 团员
1982/12/25 党员
1984/03/26 团员
…
…
例2 人机对弈问题——树结构
如何实现对弈?各格局之间是什么关系?
……..
……..
……
……
…...
……
wk.baidu.com
例3 教学计划编排问题——图结构
是集合中某些元素所构成的序偶的集合。 例如 D={A,B,C,D,E}
R={<A,D>,<D,C>,<D,E>}和
R={<A,C>,<B,D>,<A,D>} 都是D上的一种关系。
数据结构: 带结构的数据元素的集合
假设用三个 4 位的十进制数表示一个含 12 位 数的十进制数。
例如: 3214,6587,9345 ─ a1(3214),a2(6587),a3(9345)
a1 a2 a3 a4 a5 a6
行的次序关系:
row = {<a1,a2>,<a2,a3>,<a4,a5>,<a5,a6>}
列的次序关系:
col = {<a1,a4>,<a2,a5>,<a3,a6>}
a1 a3 a5 a2 a4 a6
a1 a2 a3 a4 a5 a6
数据结构: 带结构的数据元素的集合
数据结构
主讲教师 邢振祥
1
课程安排
总学时:60 讲课学时:50 实验学时:10 教材: 《数据结构C语言版》严蔚敏、吴伟民
-----清华大学出版社
《数据结构C语言篇》习题与解析 李春葆
-----清华大学出版社
课程要求
课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间
N.沃思(Niklaus Wirth)教授提出: 程序=算法+数据结构 程序设计:为计算机处理问题编制一组指 令集 算法:处理问题的策略 数据结构:问题的数学模型 软件=程序+文档(软件工程的观点)
电子计算机的主要用途:
早期:
主要用于数值计算。
后来:
处理逐渐扩大到非数值计算领域 (能处理多种复杂的具有一定结构关系的 数据)。
即:首先要考虑对相关的各种信息如 何表示、组织和存储? 因此,可以认为:数据结构是一门讨 论“描述现实世界实体的数学模型 (非数值计算)及其上的操作在计算机 中如何表示和实现”的学科。
数据结构课程的形成和发展:
形成阶段:
60年代初期,“数据结构”有关的内容散见 于操作系统、编译原理和表处理语言等课程。 1968年,“数据结构”被列入美国一些大 学计算机科学系的教学计划。
发展阶段:
数据结构的概念不断扩充,包括了网络、集 合代数论、关系等“离散数学结构”的内容。
70年代后期,我国高校陆续开设该课程。
《数据结构课程》所处的地位:
1.2 基本概念和术语
数据(Data):是对信息的一种符号表示。在计算机科学 中是指所有能输入到计算机中并被计算机程序处理的 符号的总称。
数据元素(Data Element):是数据的基本单位,在计算 机程序中通常作为一个整体进行考虑和处理。
第一章 绪论
1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表示和实现 1.4 算法和算法分析
第一章 绪论
教学目的: (1)了解数据结构及算法的概念; (2)掌握计算语句频度和估算算法 时间复杂度的方法。 教学的重点和难点:估算算法时间复 杂度。
1.1 什么是数据结构
什么是程序、软件?
一个数据元素可由若干个数据项组成。数据项是 数据的不可分割的最小单位。
三者之间的关系:数据 > 数据元素 > 数据项
例:班级通讯录 > 个人记录 > 姓名、年龄……
数据对象(Data Object):是性质相同的数据元素的集 合。是数据的一个子集。
序偶:由两个具有给定次序的元素x和y所组成的 序列,记为<x,y>。 关系:是指集合中元素之间的相互联系。
再例,在一维数组 {a1, a2, a3, a4, a5, a6} 的数据 元素之间存在如下的次序关系:
{<ai, ai+1>| i=1, 2, 3, 4, 5}
可见,不同的“关系”构成不同的“结构” 或者说,数据结构是相互之间存在着某种逻辑 关系的数据元素的集合。
具体来说,数据结构包含三个方面的内容,即 数据的逻辑结构,数据的存贮结构和对数据所 施加的运算
如何表示课程之间的先修关系?
编号 课程名称 先修课
C1
高等数学
无
C2
计算机导论 无
C1
C3
离散数学
C1
C4
程序设计
C1, C2
C5
数据结构
C3, C4
C2
C6
计算机原理 C2, C4
C7
数据库原理 C4, C5, C6
C3
C5
C4
C7
C6
求解非数值计算的问题:
主要考虑的是设计出合适的数据结构
及相应的算法。