数据结构 第一章 绪论

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

◆ 课程考试按排问题转化为图的着色问题
--用尽可能少的颜色为该图的每个顶点着色,使相邻的 顶点着上不同的颜色; --每一种颜色代表一个考试时间,着上相同颜色的顶点 是可以按排在同一时间考试的课程; 如下是一种着色方案: 红色:a,c ;黄色:b,d ;绿色:e;蓝色:f 即 a,c 可安排在同一时间考试,b,d可安排在同一时间考试 ; E E
1.1 什么是数据结构
分析: ◆ 问题涉及的对象:课程; ◆ 课程之间的关系:同一个研究生选修的课程不能按排在同 一时间考试;课程及课程之间的关系可用如下所示的图表示:
课程关系图
E
C
D
A F
B
顶点:表示课程; 边:同一研究生选修的课程用边连接。有边连接的课程不能按 排在同一时间考试。
1.1 什么是数据结构
教材和参考书
•数据结构 ( C语言版)严蔚敏 吴伟民 清华大学出版社 •数据结构题集 ( C语言版)严蔚敏 吴伟民 清华大学出版社 • 数据结构、算法与应用 [美] Sartaj Sahni 著
汪诗林 孙晓东等译 机械工业出版社
• 数据结构(用面向对象方法与C++描述) 殷人昆等 编著 清华大学出版社
有的同学可能想:我们在学习程序设计时,例如学习C语 言时,学习过各种数据类型如何表达,如何存储,如何处理, 如整型变量,可用标识符表达,在内存中它们通常是占用16个 二进制位,可对它们作加减乘除操作,但是C语言中学习过的 关于数据的知识,只能求解一些简单的计算问题和应用问题, 如果你要想设计求解比较复杂的问题的程序,比如 比word简 单的多的文本编辑程序,你还需要进一步的学习。
1.1 什么是数据结构
3.数据结构在计算机科学中的地位(P4)
数据结构是一门研究非数值计算的程序设计问题中计算 机的操作对象以及它们之间的关系和操作等等的学科。
数学 代数系统 编码理论 算子关系
数据类型 数据表示 数据运算 文件系统 存储装置 数据结构 数据组织 数据存取 信息查询 机器组织 硬件 软件
(2)对象之间的关系:area=lengthwide ——可用方程或 函数表示 ; (3)数据存储:可用程序设计语言中的实型变量存储; (4)问题求解:用某种计算方法求解
1.1 什么是数据结构
(2)非数值问题 例 2 已知研究生选课情况,安排课程考试的日程。 (1)问题涉及的对象: 课程——可用课程名表示——不能用数值表示 (2)对象之间的关系: 同一研究生选修的课程不能安排在同一时间考试, 同一研究生选修的课程之间有某种“冲突”关系 ——课程之间这种关系不能用方程或函数表示 (3)数据及数据之间的关系如何存储?
1) 数据的逻辑结构,数据结构的基本操作; 2) 数据的存储结构,数据结构基本操作的实现;
1.2 基本概念和术语
数据的逻辑结构 :数据之间的结构关系,是具体关系的抽象。 数据结构的基本操作:也叫基本运算,是指对数据结构的加工处理; 数据的存储结构:数据结构在计算机内存中的表示。 本课程介绍的存储结构有: 顺序存储结构 链式存储结 数据结构基本操作的实现:基本操作在计算机上的实现(方法)
1.1 什么是数据结构
1、学习数据结构的目的
在可视程序设计平台广泛流行和应用的今天,程序设计不 再是一种神秘的、专业性的工作,很多非计算机专业的人员 都可以进行应用程序的设计。这似乎让人觉得,只要掌握了 一门可视化的程序设计语言,人人都可以成为编程高手,但 事实并非如此。要想成为一个熟练的专业化程序设计人员, 至少,应满足三个条件: 1)能够熟练地选择和设计各种数据结构和算法。
数 据 结 构
Data structure
课堂纪律与考核
纪律是让一个集体中的每个人获得最大 限度的自由(这必须通过限制一些“自由 ”来实现) 上课48学时、其中上机实验8学时 •平时成绩 20%
•考试成绩 80%
课程安排
第一章 绪论 第二章 线性表
第三章 栈与队列
第五章 数组
第四章 串
第六章 树与二叉树
1)什么是程序?
程序描述了数据加工处理的过程,即程序的任务是对数据进行加工处理。 例:求阶乘的程序 main(){ int i, n, fac=1 ; scanf (“%d\n”, &n); for (i = 1; i <=n ;++i ) fac=fac*i; printf (“n!=%d”,fac); } 运行该程序,通过键盘输入一个整数n,得到的结果是该数的阶乘n!; 又如,运行Word时,通过键盘键入字符,得到的结果是一个磁盘文件。
(4)如何求解 ?
1.1 什么是数据结构
1.2 基本概念和术语
1. 数据(data) 数据是指能够输入到计算机中,并被计算机识别 和处理的符号的集合。 例如:数字、字母、汉字、图形、图像、声 音都称为数据。 2.数据元素(data element) 数据的基本单位。在计算机程序中通常作为 一个整体考虑和处理。由数据项组成。 例如: 表示一本书的书目信息(数据结构 严蔚敏 清华大学出版社)是一个数据元素,在 图书管理系统中通常作为一个整体处理。其中: 数据结构、严蔚敏等为数据项。
数据对象 内容 顺序关系 及其之间的关系 非顺序关系 形式化 DS 逻辑 非形式化 描述 数据元素映象 — 二进制串 存储结构 顺序存储 关系映象 链式存储
2)熟练掌握一门程序设计语言。
3) 熟知应用领域的相关知识。
其后两个条件比较容易实现,而第一个条件则需 要花相当的时间和精力才行。这也是区分一个程序设 计人员水平高低的一个重要标志。因此,我们学习数 据结构的目的,就是为了更好地进行程序设计。
1.1 什么是数据结构
数据结构课程就是要对不同的数据对象(Data object) 进行探索。对每种数据对象,首先考虑要执行的操作,然 后考虑表示这种数据对象的方法,以使这些操作有效地实 现(算法 Algorithm)。 学习数据结构,要掌握两种技术: 1)善于设计种种可供选择的数据表示形式(Data Structure)。 2)对相应的Data Structure设计出完成各种操作的 算法。 2.什么是数据结构?
理。
第一章
绪论
学习要点
了解数据结构有关概念的含义,特别是数据 的逻辑结构,数据的存储结构之间的关系;
1
2 熟悉类C语言的书写规范,特别要注意值调用 和引用调用的区别及出错处理方式; 3 了解算法时间复杂度的计算方法;
本章的主要内容:
1.1 1.2 1.3 1.4
什么是数据结构: 基本概念和术语 抽象数据类型的表示与实现 算法与算法分析 补充 类C语言简要说明
课程着色的过程
C C
D
A A F
B
1.1 什么是数据结构
设G表示课程关系图,集合V包含图G中所有尚未 着色的顶点,NEW表示已确定可以用新颜色着色的顶 点集合。按排考试日程的程序流程如下:
I=1; WHILE V 非空 DO 置 NEW 为空集合; FOR 每个 v V DO IF v 与NEW 中所有的结点间都没有边 从V 中去掉v;将v 加入NEW ; (第I天考试课程为NEW中顶点所对应的课程) 以某种形式输出NEW中顶点所对应的课程; I=I+1;
1.2
基本概念和术语
5. 数据类型(data type) 是一组性质相同的值的集合以及定义于这个值集合 上的一组操作的总称。
例如,高级语言中用到的整数数据类型,是指由- 32768到32767中值构成的集合及一组操作(加、减 、乘、除、乘方等)的总称。
6. 抽象数据类型(Abstract Data Type) 是指一个数学模型以及定义在该模型上的一组操作。 抽象数据类型的的定义仅取决于它的逻辑特性。
数据结构是一门研究非数值计算的程序设计问题中计 算机的操作对象以及它们之间的关系和操作等等的学科。
本课程主要讨论以下三种数据结构:
1.1 什么是数据结构
1.1 什么是数据结构
Tt
a
b
c
a1
百度文库a2
b1
b2
c1
c2
d
d1
d2
d3
图 1-2
树形结构示意图
1.1 什么是数据结构
1 3 4
2 6 5 图 1-3 图形结构示意图
http://t.cn/zY6yDPF 想在美国找计算机软件工作吗?warald 推荐的CS自学书籍和课程名单。从入门级讲起
数据结构的研究对象及本课程讨论的问题
数据结构的研究对象:
非数值数据之间的结构关系,如何表示、 如何存储、如何处理的问题。
本课程讨论的问题:
应用中常见的几种数据结构及如何存储,如何处
从应用问题涉及的对象来分可分为数值问题和非数值问题。 数值问题就是我们平时所说的计算问题,如已知圆的半径,要求 圆的面积。非数值问题就是问题中涉及的对象不能用数来表达的 那些问题。
1.1 什么是数据结构
下面我们来看看数值问题与非数值问题有什么不同。 (1)数值问题 例1 已知:游泳池的长lenght和宽wide,求面积area。 分析: 问题涉及的对象:游泳池的长lenght 宽wide,面积area; 对象之间的关系:area=lenghtwide; 程序: main(){ int len, wide ,area ; scanf (“%d %d%\n”, &len,&wide); area=len*wide ; } 可见,对于数值问题,对象之间的关系通常可以用方程 或函数表达,我们只要能列出表达对象之间关系的方程或函 数,找到求解方程或函数的方法,就可以编写程序了。
第七章 图
第十章 排序
第九章 查找
教学目标
1.掌握常用数据对象的逻辑结构及存储方法, 学会编写在常用的存储方式下对数据对象的 基本操作算法。 2.学会分析问题所涉及数据对象的特征,操作 的特征,选择合适的数据结构、存储结构及 算法进行程序设计。 3.了解算法时间、空间开销的分析方法。 4.通过基本算法和应用算法的学习和上机实践, 受到程序设计的基本训练,提高编程能力, 为进行软件开发打下良好的基础。
1.1 什么是数据结构
(2)非数值问题 例 2 已知研究生选课情况,安排课程考试的日程。 研究生选课情况表
姓名 杨润生 石磊 魏庆涛 马耀先 齐砚生
选修课1 算法分析(A) 计算机图形学(C) 计算机图形学(C) 模式识别(D ) 形式语言(B)
选修课2 选修课3 形式语言(B) 计算机网络(E) 模式识别(D) 计算机网络(E) 人工智能(F) 人工智能(F) 算法分析(A) 人工智能(F)
1.1 什么是数据结构
2)什么是程序设计?
程序设计是将问题的求解过程用某种计算机语言表达出来。 为编写程序,首先要分析实际问题所涉及的对象,要解决数据如何表达,如 何存储,如何处理的问题。 数据结构:就是研究关于数据表达,数据存储及数据处理的方法。
程序=
数据结构+算法
1.1 什么是数据结构
3) 数值问题与非数值问题
1.1 什么是数据结构
数据结构是计算机专业重要的专业基础课,它的 前期课程主要有程序设计语言,离散数学。学好这门 课,可以加深对程序设计的理解,有助于进一步提高 程序设计能力,并为计算机专业后续课程,如数据库、 操作系统、编译原理,软件工程等课程奠定良好的基 础。
1.1 什么是数据结构
4、相关问题
下面的问题是如何存储图 集合,如何实现图的 集合操作了。这就是数据结构要讨论的问题。
1.1 什么是数据结构
4)
数值问题与非数值问题的比较
(1)数值问题 例1 已知游泳池的长length, 和宽wide,求面积area。
(1)问题涉及的对象:length, wide,area 是实数 ——可用数值表示 ;
3. 数据对象(data object) 是性质相同的数据元素组成的集合,是数据的一 个子集。 例如,整数数据对象的集合可表示为N={0, ±1,±2„„.},字母字符数据对象的集合可表示为 C={‘A’,’B’,„’Z’}。
1.2
基本概念和术语
4 数据结构(Data structure):
带有结构和操作的数据元素集合 结构:数据元素之间的关系; 操作:对数据的加工处理 ; 根据数据元素之间关系的结构特征,应用中常用的有下列四类 基本结构: (1)集合 (2)线性结构 (3)树结构 (4)图结构 对每种数据结构,主要讨论如下两方面的问题:
相关文档
最新文档