当前位置:文档之家› 数据结构课程介绍

数据结构课程介绍


一个算法可以用多种方法描述,主要有:使用自 然语言描述;使用形式语言描述;使用计算机程序 设计语言描述。 算法和程序是两个不同的概念。一个计算机程序 是对一个算法使用某种程序设计语言的具体实现。 算法必须可终止意味着不是所有的计算机程序都是 算法。
Q1. 什么是算法?
算法有5个基本特性:
有穷性 确定性 可行性 输入
数据结构 Data Structure

材:严蔚敏等,数据结构(C语言版),清华大 学出版社
参考书:
[1] 殷人昆等,数据结构(用面向对象方法与C++
描述),清华大学出版社,1999年7月。 [2] 殷人昆等,数据结构习题解析,清华大学出版社, 2002年4月。 [3] 李春葆,数据结构习题与解析(C语言篇),清
Data_Structure=(D, S)
(数值或非数值)
元素有限集 关系有限集
或:是指同一数据元素类中各元素之间存在的关系。
亦可表示为:S=(D, R)
或 B=(K, R)
Q2:学习数据结构有什么用?
答:计算机内的数值运算依靠方程式,而非数值运
算(如表、树、图等)则要依靠数据结构。
这是一门研究非数值计算的程序设计问题中计算机的操 作对象以及它们之间的关系和操作等等的学科。
输出
Q2. 算法设计的要求?
一个好的算法有以下几个标准:
(1) 正确性
(2) 可读性
(3) 健壮性 (4) 通用性 (5) 效率与低存储需求
作业:
1. 简述下列术语:数据、数据元素、数据对象、 数据结构、存储结构、数据类型、抽象数据类 型 2. 设有数据结构(D, R),其中 D={d1, d2, d3, d4}
ADT Natural_Number is objects: 一个整数的有序子集合,它开始于0,结束于机器能
表示的最大整数 (MAX INT) functions: 对于所有的 x, y Natural_Number; TRUE, FALSE Boolean; +, -, <, = = ,=等都是可用 的服务。
提示:教材中例1-6和例1-7分别给出了抽象数据类 型“三元组”的定义、表示和实现,请试阅读。
Q1 数据类型与抽象数据类型的区别? 数据类型:是一个值的集合和定义在该值上 的一组操作的总称。 数据结构不同于数据类型,也不同于数 据对象,它不仅要描述数据类型的数据对 象,而且要描述数据对象各元素之间的相 互关系。
解: 上述表达式可用图形表示为: b c a e f d 此结构为线性的。
(2) S=(D, R) D={di | 1≤i≤5} R={(di , dj ), i<j}
解:上述表达式可用图形表示为: d1 d5 d4 d3 d2
该结构是非线性的。
解释2:什么叫数据的物理结构?
答:物理结构亦称存储结构,是数据的逻 辑结构在计算机存储器内的表示(或映 像)。它依赖于计算机。 数据结构在计算机内存中的存储包括 数据元素的存储和元素之间的关系的表 示。
if (x==0) 返回TRUE else 返回 FALSE if (x+y <= MAX INT)返回 x+y
else 返回MAX INT
if (x<y)返回0 else 返回x-y if (x== y)返回TRUE else 返回FALSE if (x == MAX INT)返回x else 返回x+1
平时成绩包含:实验(20分)、作业+考勤(10分);
平时成绩采用倒扣分方式: (1)缺一次实验 扣3 (2)缺一次作业扣1分; (3)缺勤(含请假)一次扣2分,缺6次(含实验)取消
考试资格;
加分项:每章的总结 ,交1次 + 2分; 平时成绩最多30分!
第1章 序 论
1.1 什么是数据结构
1.2 基本概念和术语
数据 —— 包括数字、字符、声音、图像等信息 。 数据元素 —— 又称元素、结点,顶点、记录等。 数据项 —— 又称字段、域、属性 等。
三者之间的关系:数据 > 数据元素 > 数据项
例:班级通讯录 > 个人记录 > 姓名、年龄……
Q1:什么是数据结构?
答: (见教材P5) 是相互之间存在一种或多种特 定关系的数据元素的集合,表示为:
解释1: 什么叫数据的逻辑结构?
逻辑结构可细分为4类:
集合结构: 仅同属一个集合
线性结构: 一对一(1:1) 树 结 构: 一对多(1:n)
线性
非线性
图 结 构: 多对多 (m:n)
例:用图形表示下列数据结构,并指出它 们 是属于线性结构还是非线性结构。 (1) S=(D, R) D={ a, b, c, d, e, f } R={(a,e), (b,c), (c,a), (e,f), (f,d)}
华大学出版社,2001年1月。
内容安排
章 内 容 学时 章 内 容 学时
1
2 3 4
序 论
线性表 栈和队列 串
2
10 8 2 8
7
8 9 10 11

动态存储管理 查找 内部排序 外部排序
10
略 8 6 略
5 数组和广义表
6
树和二叉树
共64学时。
考核方式
闭卷考试,卷面 70% + 平时 30%;
寻求数学模型的实质: 分析问题,从中提取操作的对象,并找出这些 操作对象之间含有的关系,然后用数学的语言加以 描述。
8
Q2:数据结构解决什么样的问题?
答: 数据结构研究非数值计算的程序设计问 题中计算机的操作对象以及它们之间的关系 和操作等的学科。
9
• 图书检索系统、电话号码查询系统
• 人机对弈、家谱 • 交通灯管理系统
但上机时要用具体语言实现,如C或C++等
§1.4 算法和算法分析
讨论: Q1. 什么是算法?
Q2. 算法设计的要求?
Q3. 时间复杂度如何表示? Q4. 空间复杂度如何表示?
Q1. 什么是算法?
答:算法是对特定问题求解方法(步骤)的一种描述, 是指令的有限序列,其中每一条指令表示一个或多 个操作。
Q2 抽象数据类型如何定义?
抽象数据类型可以用以下的三元组来表示:
ADT = (D,S,P)
数据对象 D上的关系集 ADT抽象数据类型名{
ADT
D上的操作集
常用
定义 格式
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作 :<基本操作的定义> } ADT抽象数据类型名
例:给出自然数(Natural Number )的抽象数据类型定义。
10
11
12
13
• 深蓝是美国IBM公司生产的一台超级国际象棋电脑。 • “深蓝”和卡斯帕罗夫曾于1996年交过手,结果卡斯帕罗 夫以4:2战胜了“深蓝”。 • “更深的蓝”是美国IBM公司生产的一台超级国际象棋电 脑,重1270公斤,有32个大脑(微处理器),每秒钟可以计 算2亿步。“更深的蓝”输入了一百多年来优秀棋手的对 局两百多万局。 • 1997 年 5 月 11 日,加里· 卡斯帕罗夫以 2.5:3.5 输给 “更 深的蓝”
R={r}, r={(d1, d2)(d2, d3)(d3, d4)}
问数据结构D是那种类型的数据结构?
3 试写一算法,自大到小依次输出顺序输入的 三个整数X、Y和Z的值。 4 复习C语言的知识
1.3 抽象数据类型的表示和实现
1.4 算法和算法分析
作业
§1.1 什么是数据结构
Q1 Q2
如何采用计算机解决问题? 数据结构解决什么样的问题?
Q3 《数据结构》课程介绍
Q1:如何采用计算机解决问题?
答:编写解决实际问题的程序的一般过程:
(1) 如何用数据形式描述问题? 从具体问题抽象出一个适当的数学模型; (2) 问题所涉及的数据量大小及数据间的关系; (3) 如何在计算机中存储数据和体现数据间的 关系? (4) 处理问题时需要对数据做何种运算? (5) 所编写的程序的性能是否良好? 这些问题基本上是由数据结构这门课程来回答。
end Natural_Number
Q3 抽象数据类型如何表示和实现? 抽象数据类型可以通过固有的数据类型 (如整型、实型、字符型等)来表示和实现。 即利用处理器中已存在的数据类型来说明新的 结构,用已经实现的操作来组合新的操作。
注 :教材中用的是类C语言(介于伪码和C语言之间) 作为描述工具。其描述语法见P10-11。
解释2:什么叫数据的物理结构?
存储结构可分为4大类:顺序、链式、索引、散列 顺序存储结构:用数据元素在存储器中的相对位
置来表示数据元素之间的逻辑结构(关系)。
链式存储结构:在每一个数据元素中增加一个存
储另一个元素地址的指针,用该指针来表示数据
元素之间的逻辑结构(关系)。
例:设有数据集合A={3, 4, 0, 8}
解释3:什么是数据的运算?
答:在数据的逻辑结构上定义的操作算法。 它在数据的存储结构上实现。
最常用的数据运算有5种:
插入、删除、修改、查找、排序
Q3:数据结构涵盖的内容?
§1.3 抽象数据类型的表示和实现
讨论:
Q1 数据类型与抽象数据类型的区别?
Q2 抽象数据类型如何定义?
Q3 抽象数据类型如何表示和实现?
14
15
16
Q3:《数据结构》课程介绍
介于数学、计算机硬件和计算机软件 三者之间的一门核心课程,不仅是一般程 序设计的基础,也是设计和实现编译程序、 操作系统、数据库系统及其他系统软件和 大型应用软件的重要基础。 关系
对象
相关主题