《数据结构》教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》教案
信息技术学院
软件教研室
课程说明
【目的】
1.数据结构是研究数据组织、存储和运算的一般方法的学科。
——理解并掌握数据的各种数据结构的原理与算法。
2. 学会分析研究计算机加工的数据结构的性质,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。
3.数据结构是编程的基础。程序=数据结构+算法
——能够以数据结构为基础,进行复杂程序编程,且符合软件工程的规范。
4.数据结构课程重点是培养学生的数据抽象能力。
【内容】
1.数据结构的基本概念(第1章)
2、线性表(第2、
3、
4、5章)
3、树(第6章)
4、图(第7章)
5、查找和排序(第9、10、11章)
【参考书】
1.数据结构严蔚敏清华大学出版社
2. 数据结构(c语言篇)——习题与解析(修订版)李春葆清华大学出版社
【教学安排】
第1章绪论
【教学目的】
1.数据结构的基本概念,介绍数据和数据结构等名词和术语。
2.描述算法的类C语言
3.从时间和空间角度分析算法的方法
【教学要求】
掌握基本概念,了解抽象数据类型,掌握计算语句频度和估算算法时间复杂度,熟悉类C语言的书写规范。
【教学重点与难点】
描述算法的类C语言;抽象数据类型的概念;算法复杂性的分析方法
【教学追记】
1、熟悉各名词、术语的含义,掌握基本概念,特别是数据结构的三个方面(逻辑结构、存储结构、及其运算)。数据的逻辑结构和存储结构之间的关系。分清哪些是逻辑结构的性质,哪些是存储结构的性质。
2、了解抽象数据类型的定义、表示和实现方法。
3、理解算法五个要素的确切含义:①动态有穷性(能执行结束);②确定性(对于相同的输入执行相同的路径);③有输入;④有输出;⑤可行性(用以描述算法的操作都是足够基本的)。
4、掌握计算语句频度和估算算法时间复杂度的方法。
5、熟悉类C语言的书写规范,对学过C++的学生,比较输入/输出语句cin /cout;动态分配内存
语句new与C语言的区别。
6、本章的授课方法:讲授为主,自学为辅,通过练习掌握概念和方法,可以通过1个编程,理解抽象数据类型的概念
【教学内容】
1.什么是数据结构
2.基本概念和术语
3.抽象数据类型的表示与实现
4.算法和算法分析
1.1什么是数据结构
一、计算机解决具体问题的步骤
1、从具体问题抽象出一个适当的数学模型;
2、设计解此数学模型的算法;
3、编程,进行测试、调整直至得到最终解答。
对数值计算问题可以用数学方程来描述。 但是,对许多非数值计算问题无法用数学方程加以描述。需要用表、树、图等数学模型来描述。
二、非数值问题的三个例子
1、图书馆的书目检索系统自动化问题; ——表
2、计算机和人对弈问题; ——树
3、多叉路口交通灯的管理问题。 ——图
例
分析:在图书馆需要查阅图书目录卡片,可以利用计算机实现自动检索。
计算机处理的对象是数目信息,可以由登录号、书名、作者名、分类号、出版单位和出版时间等组成。在书目自动检索系统中可建立一张按登录号顺序排列的书目文件和三张分别按书名、作者名、分类号顺序排列的索引表。这四张表构成的文件便是书目自动检索的数学模型。See page 2 图1.1
类似的问题还有查号系统自动化、仓库帐目管理等。 结论:
在这类文档管理的数学模型中,计算机处理的对象之间通常存在着的是一种最
例1-2
分析:计算机能和人对弈是因为有人将对弈的软件事先存入计算机。
● 在对弈问题中,计算机操作的对象是对弈过程中可能出现的棋盘状态称为格
局。
● 格局之间的关系是由比赛规则决定的,这个关系不是线性的。从一个格局可
派生出几个格局。见 p2 图1.2
● 若将从对弈开始到结束的过程中所有可能出现的格局都画在一张图上,则可得到一棵倒长的“树”。
● “树根”是对弈开始之前的棋盘格局,而所有的“叶子”就是可能出现的结局,对弈的过程就是从树根沿树叉到某个叶子的过程。
结论:
在人-机对弈问题的数学模型中,计算机处理的对象之间通常存在着一种“树”的关系。 “树”可以是某些非数值计算问题的数学模型,它也是一种数据结构。
例1-3 多叉路口交通灯管理问题
分析:在多叉路口需设几种颜色的交通灯才能既使车辆相互之间不碰撞,又能
达到车辆的最大流通。见P3 图1.3
通常,这类交通、道路问题的数学模型是一种称谓“图”的数据结构。 ● 图中的一个顶点表示一条通路,而通路之间矛盾的关系以顶点间的连线表
示。
● 本问题等价为对图的顶点的染色问题,要求对图上的每个顶点染一种颜色。
且要求有线连接的两个顶点不能具有相同颜色,而总的颜色种类应尽可能地少。
B
图
结论:
这类交通、道路问题的数学模型是一种称为“图”的数据结构。
小结
以上三个例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树和图之类的数据结构。
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科(非定义)。
三、数据结构的概念
1、数据结构是指同一数据元素类中各数据元素之间存在的关系。
2、数据结构又可以分为下述三个组成部分,它们分别是数据的逻辑结构、数据的存储结构和数据的运算。
数据的逻辑结构:数据元素之间的逻辑关系
数据的存储结构:数据元素及其关系在计算机存储器中的表示
数据的运算:定义一组有关数据元素的运算
3、定义小结:
定义包括三方面:它们分别是数据的逻辑结构、数据的存储结构和数据的运算
逻辑关系相同,存储方式不同,也为不同的数据结构。
基本运算:插入、删除、修改、查找、排序等。
4、学习数据结构的意义:
根据数据处理问题的需要,为待处理的数据选择合适的结构(逻辑结构和存储结构),进而设计出比较满意的算法。
1.2基本概念和术语
1.数据(Data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并
被计算机程序处理的符号的总称。例:整数、实数、图象、声音等。
2.数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进
行考虑和处理。有时,一个数据元素可以由若干个“数据项(Data Item)”组成。
例:一本书的书目信息为一个数据元素,而书目信息中的每一项为一个数据项。
3.数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。例:整
数数据对象等。
例如:数据对象:信息管理的学生
数据元素:学生的基本信息 {张三,男,20,信息管理}
数据项:每条信息中的组成项
4、数据的基本结构:数据元素相互之间关系称为结构。
根据数据元素之间关系的不同特性,有四种基本结构:P5 图1.5
(1)集合:结构中的数据元素之间存在“同属一个集合的关系”,此外别无关系。
(2)线性结构:元素之间存在一个对一个的关系。
(3)树形结构:元素之间存在一个对多个的关系。