数据结构教程第一课数据结构的基本概念和术语 本课主数据结构的基本概念和术语 教学月的:了解数据结构的基本概念,理解常用术语 教学重点:基本概念:数据与数据元素 教学难点:数据元素间的四种结构关系。 授课内容 、数据、数据元、数据对象、数据结构的定义 1、数据的定义 定义一:数据是客观事物的符号表示。 文 数学 C语言 6201001 张三 6201002 李四 6201003 王五 87 74 6201004 例:张三的C语言考试成绩为92分,92就是该同学的成绩数据。 定义二:能输入到计算机中并被计算机程序处理的符号的总称。 图像、声音等。 macy POWERBUILDER 总结:现实世界信息的分析、复制、传播首先要符号化,这样才便于处理,尤其是便于计算机的处理。 家长、社会要了解一个学生的学习成绩和能力,要看他的学习档案,而学习档案即是说明该学生学习情况 的数据
数据结构教程 第一课 数据结构的基本概念和术语 本课主题:数据结构的基本概念和术语 教学目的:了解数据结构的基本概念,理解常用术语 教学重点:基本概念:数据与数据元素 教学难点:数据元素间的四种结构关系。 授课内容: 一、数据、数据元素、数据对象、数据结构的定义 1、数据的定义 定义一:数据是客观事物的符号表示。 学号 姓名 语文 数学 C 语言 6201001 张三 85 54 92 6201002 李四 92 84 64 6201003 王五 87 74 73 6201004 ... 例:张三的 C 语言考试成绩为 92 分,92 就是该同学的成绩数据。 定义二:能输入到计算机中并被计算机程序处理的符号的总称。 例:图像、声音等。 总结:现实世界信息的分析、复制、传播首先要符号化,这样才便于处理,尤其是便于计算机的处理。 家长、社会要了解一个学生的学习成绩和能力,要看他的学习档案,而学习档案即是说明该学生学习情况 的数据
2、数据元素、数据项 数据元素是数据的基本单位,它也可以再由不可分割的数据项组成。如图示 学号 姓名文、数学Ci语言 620m 6201002 四 201003 王五 个数据元素 6201004 一个数据项 个表记录的是学生成绩数据,单个 生的成绩是其中的一个数据元 3、数据对象 是性质相同的数据元素的集合。如上例 班级的成绩表可以看作一个数据对象 4、数据结构 定义一、数据元素集合(也可称数据对象)中各元素的关系 定义二、相互之间存在特定关系的数据元素集合。 据结构的种类: 同属色彩集合 蓝色 元素间为松散的关系 红色 黄色 线性结构元素间为严格的一对一关系 如上面的成绩表中各元素
2、数据元素、数据项 数据元素是数据的基本单位,它也可以再由不可分割的数据项组成。如图示: 3、数据对象 是性质相同的数据元素的集合。如上例:一个班级的成绩表可以看作一个数据对象。 4、数据结构 定义一、数据元素集合(也可称数据对象)中各元素的关系。 定义二、相互之间存在特定关系的数据元素集合。 数据结构的种类: 特征 示例 集合 元素间为松散的关系 线性结构 元素间为严格的一对一关系 如上面的成绩表中各元素
一对多炅、祖 树形结构元素间为严格的一对多关系 父炅炅 炅炅子 多对多 北京 图状结构(或网 元素间为多对多关系 状结构) 合肥一连云港一上海 南京 公路交通网 数据结构的形式定义 数据结构名称=(D,S) 其中D为数据元素的有限集,S是D上关系的有限集 数据结构"定义中的关系指数据间的逻辑关系,故也称数据结构 逻辑结构 为逻辑结构 存储结构 顺序存储结构 数据结构在计算机中的表示称为物理结构。又称存储结构。 链式存储结构 存储结构详解 计算机中存储信息的最小单位:位,8位为一字节,两个字节为一字,字节、字或更多的二进制位可 称为位串。在逻辑描述中,把位串称为元素或结点 当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域( Data Field) 例:上述成绩表数据用C语言的结构体数组 classonestul50]来存储 struct stu int stung;/*数据项,也称stu位串中的一个子位串,或叫做数据域* char name[20]: int language
树形结构 元素间为严格的一对多关系 图状结构(或网 状结构) 元素间为多对多关系 数据结构的形式定义: 数据结构名称=(D,S) 其中 D 为数据元素的有限集,S 是 D 上关系的有限集 逻辑结构 “数据结构”定义中的“关系”指数据间的逻辑关系,故也称数据结构 为逻辑结构。 存储结构 顺序存储结构 数据结构在计算机中的表示称为物理结构。又称存储结构。 链式存储结构 存储结构详解: 计算机中存储信息的最小单位:位,8 位为一字节,两个字节为一字,字节、字或更多的二进制位可 称为位串。在逻辑描述中,把位串称为元素或结点。 当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域(Data Field)。 例:上述成绩表数据用 C 语言的结构体数组 classonestu[50]来存储: struct stu { int stuno;/*数据项,也称 stu 位串中的一个子位串,或叫做数据域*/ char name[20]; int maths; int language;
3 classonestu [50 二、数据类型 1、定义:数据类型是一个值的集合和定义在这个值集上的一组*作的总称 例:C语言中的整型,其内涵为一定范围的自然数集合,及定义在该集合上的加减乘除及取模、比较 大小*作。而实型则无取模*作。当然整型也不需四舍五入 2、数据类型的种类: 特征 例 原子类型 值在逻辑上不可分解 int float 结构类型值由若干成分按某种结构组成 struct stu 数据类型封装了数据存储与*作的具体细节 数据->数据元素 具有特定关系的数据元素集合->数据结构 数据结构的逻辑表示与物理存储->逻辑结构与存储结构 人们不仅关心数据的逻辑结构、存储结构,还关心数据的处理方法(算法)与处理结果->数据类型 数据类型->分类 数据结构教程第二课抽象数据类型的表示与实现 本课主题抽象数据类型的表示与实现 教学目的了解抽象数据类型的定义、表示和实现方法 教学重点:抽象数据类型表示法、类C语言语法 教学圈点:抽象数据类型表示法 捉课内 、抽象数据类型定义(ADT) 作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传 关系
int c_language; } classonestu[50]; 二、数据类型 1、定义:数据类型是一个值的集合和定义在这个值集上的一组*作的总称。 例:C 语言中的整型,其内涵为一定范围的自然数集合,及定义在该集合上的加减乘除及取模、比较 大小*作。而实型则无取模*作。当然整型也不需四舍五入。 2、数据类型的种类: 特征 例 原子类型 值在逻辑上不可分解 int float 结构类型 值由若干成分按某种结构组成 struct stu 数据类型封装了数据存储与*作的具体细节。 三、总结 数据->数据元素 具有特定关系的数据元素集合->数据结构 数据结构的逻辑表示与物理存储->逻辑结构与存储结构 人们不仅关心数据的逻辑结构、存储结构,还关心数据的处理方法(算法)与处理结果->数据类型 数据类型->分类 数据结构教程 第二课 抽象数据类型的表示与实现 本课主题: 抽象数据类型的表示与实现 教学目的: 了解抽象数据类型的定义、表示和实现方法 教学重点: 抽象数据类型表示法、类 C 语言语法 教学难点: 抽象数据类型表示法 授课内容: 一、抽象数据类型定义(ADT) 作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传 关系
定义:一个数学模型以及定义在该模型上的一组*作。 关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如 何存储。 例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第 一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些*作:插入一个元素、删除一个 元素等。 抽象数据类型分类 原子类型 值不可分解,如int 固定聚合类型 值由确定数目的成分按某种结构组成,如复数 可变聚合类型 值的成分数目不确定如学生基本情况 抽象数据类型表示法 三元组表示:(D,S,P 其中D是数据对象,S是D上的关系集,P是对D的基本*作集 、书中的定义格式: ADT抽象数据类型名 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本*作:<基本*作的定义> ADT抽象数据类型名 例:线性表的表示 线性表 数据对象 D=ail ai( -Elem Set, i=1, 2, n, n>=01 任意数据元素的集合 除第一个和最后一个外,每个元 数据关系 R1={<a1a>|ai1,a(-Di=2…,n} 素有唯一的直接前趋和唯一的直 接后继 基本*作 ListInsert(&L, i, e) L为线性表,i为位置,e为数据
定义:一个数学模型以及定义在该模型上的一组*作。 关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如 何存储。 例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第 一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些*作:插入一个元素、删除一个 元素等。 抽象数据类型分类 原子类型 值不可分解,如 int 固定聚合类型 值由确定数目的成分按某种结构组成,如复数 可变聚合类型 值的成分数目不确定如学生基本情况 抽象数据类型表示法: 一、 三元组表示:(D,S,P) 其中 D 是数据对象,S 是 D 上的关系集,P 是对 D 的基本*作集。 二、书中的定义格式: ADT 抽象数据类型名{ 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本*作:<基本*作的定义> }ADT 抽象数据类型名 例:线性表的表示 名称 线性表 数据对象 D={ai| ai(-ElemSet,i=1,2,...,n,n>=0} 任意数据元素的集合 数据关系 R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n} 除第一个和最后一个外,每个元 素有唯一的直接前趋和唯一的直 接后继 基本*作 ListInsert(&L,i,e) L 为线性表,i 为位置,e 为数据