数据结构及单链表.ppt
- 文档编号:2744283
- 上传时间:2022-11-10
- 格式:PPT
- 页数:71
- 大小:1.42MB
数据结构及单链表.ppt
《数据结构及单链表.ppt》由会员分享,可在线阅读,更多相关《数据结构及单链表.ppt(71页珍藏版)》请在冰豆网上搜索。
3.2数据结构定义及概念1.11.1什么是数据结构什么是数据结构v建立数学模型是分析具体问题的过程,包括:
建立数学模型是分析具体问题的过程,包括:
s分析具体问题中操作对象分析具体问题中操作对象s找出这些对象间的关系,并用数学语言描述找出这些对象间的关系,并用数学语言描述数学模型分两类:
数学模型分两类:
11)数值计算类:
)数值计算类:
例:
根据三条边,求三角形面积。
例:
根据三条边,求三角形面积。
假定:
三条边依次为假定:
三条边依次为a,b,ca,b,c三个实型数,三个实型数,满足:
满足:
a0,b0,c0,a+bc,b+ca,c+ab,a0,b0,c0,a+bc,b+ca,c+ab,则则s=s=area=area=12)非数值计算类:
)非数值计算类:
例例1:
5个整数组成的集合:
个整数组成的集合:
D=20,-5,66,15,44其中其中:
20,-5,66等称为数据元素等称为数据元素(元素元素),元素与元素之间关系是它们同属于集合元素与元素之间关系是它们同属于集合D。
D=20,-5,66,15,44是一个数据对象是一个数据对象例例2:
一列整数:
一列整数:
(线性结构线性结构)L=(20,-5,66,15,44)其中其中:
元素与元素之间在元素与元素之间在L中是前后关系或线性关系。
中是前后关系或线性关系。
L=(20,-5,66,15,44)是一个线性表。
是一个线性表。
2例例3一张登记表一张登记表DL序号序号姓姓名名性性别别年年龄龄1李李刚刚男男25记录记录12王王霞霞女女29记录记录23刘大海刘大海男男40记录记录34李爱林李爱林男男44记录记录4v其中:
其中:
姓名、性别、年龄是数据项姓名、性别、年龄是数据项(item)、数据域、数据域(field);(姓名,性别,年龄姓名,性别,年龄)是记录是记录(record),C语言将语言将记录记录(record)定义为定义为”结构结构”(struct);登记表也是一个线性表。
登记表也是一个线性表。
3v例例4树状结构树状结构其中其中:
A、B、C等是结点等是结点(node);A与与B,B与与E,A与与C之间是层次之间是层次关系或父子关系。
关系或父子关系。
河南工业河南工业大学大学(A)电气学院电气学院(B)管理学院管理学院(C)理学院理学院(D)自动化自动化系系(E)电气电气系系(F)测控测控系系(G)4v例例5图状结构图状结构ABDCEFG其中:
其中:
A、B、C等是顶点等是顶点(vertex),图中任意两个顶点之间都可能有关系。
图中任意两个顶点之间都可能有关系。
5v例例6田径赛的时间安排田径赛的时间安排问题(无向图的着色问题(无向图的着色问题)问题):
设有六个比赛项目,规设有六个比赛项目,规定每个选手至多可参加定每个选手至多可参加三个项目,有五人报名三个项目,有五人报名参加比赛(如下表所示)参加比赛(如下表所示)设计比赛日程表,使得设计比赛日程表,使得在尽可能短的时间内完在尽可能短的时间内完成比赛。
成比赛。
姓姓名名项目项目项目项目项目项目丁丁一一跳高跳高跳跳远远100100马马二二标标枪枪铅铅球球张张三三标标枪枪100100200200李李四四铅铅球球200200跳跳高高王王五五跳跳远远2002006v用如下六个不同的代号代表不同的项目:
用如下六个不同的代号代表不同的项目:
跳高跳高跳远跳远标枪标枪铅球铅球100米米200米米ABCDEFv用顶点代表比赛项目用顶点代表比赛项目不能同时进行比赛的项目之间不能同时进行比赛的项目之间连上一条边。
连上一条边。
某选手比赛的项目必定有边相连某选手比赛的项目必定有边相连(不能同时比赛)。
(不能同时比赛)。
v对图上的每个顶点染一种颜色,并且对图上的每个顶点染一种颜色,并且要求有线相连的要求有线相连的两个顶点不能具有相同颜色,而总的颜色种类应尽可两个顶点不能具有相同颜色,而总的颜色种类应尽可能地少。
同色可以同时比赛。
能地少。
同色可以同时比赛。
姓名姓名项目项目1项目项目2项目项目3丁一丁一ABE马二马二CD张三张三CEF李四李四DFA王五王五BF7姓名姓名项目项目1项目项目2项目项目3丁一丁一ABE马二马二CD张三张三CEF李四李四DFA王五王五BFAAEEBBFFDDCC比赛比赛时间时间比赛项比赛项目目1A,C2B,D3E4F只需安排四个单只需安排四个单位时间进行比赛位时间进行比赛8v综上几个例子可见,描述这类非数值问综上几个例子可见,描述这类非数值问题的数学模型不再是数学方程,而是诸题的数学模型不再是数学方程,而是诸如表、树和图之类的如表、树和图之类的数据结构数据结构。
9v计计算算机机内内的的数数值值运运算算依依靠靠方方程程式式,而而非非数数值值运运算算(如表、树、图等)则要依靠数据结构(如表、树、图等)则要依靠数据结构v同同样样的的数数据据对对象象,用用不不同同的的数数据据结结构构来来表表示示,运算效率可能有明显的差异。
运算效率可能有明显的差异。
v程序设计的实质程序设计的实质是对实际问题选择一个好的数是对实际问题选择一个好的数据结构,加之设计一个好的算法。
而好的算法据结构,加之设计一个好的算法。
而好的算法在很大程度上取决于描述实际问题的数据结构。
在很大程度上取决于描述实际问题的数据结构。
算法算法+数据结构数据结构=程序程序1976年,瑞士年,瑞士N.Wirth教授教授101.2基本概念和术语v数据数据(Data):
是对信息的一种符号表示。
在计算是对信息的一种符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
机程序处理的符号的总称。
v数据元素数据元素(DataElement):
是数据的基本单位,是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和在计算机程序中通常作为一个整体进行考虑和处理。
一个数据元素可由若干个数据项组成。
处理。
一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
数据项是数据的不可分割的最小单位。
v数据对象数据对象(DataObject):
是性质相同的数据元:
是性质相同的数据元素的集合。
是数据的一个子集。
素的集合。
是数据的一个子集。
11v数据结构数据结构数据结构数据结构定义定义1-1-在任何问题中,数据元素都不是孤立存在的,而是在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构的关系称为结构(Structure)(Structure)。
v数据结构的形式定义为:
数据结构是一个二元组数据结构的形式定义为:
数据结构是一个二元组Data_Structure=(DData_Structure=(D,S)S)(1(1-1)1)其中:
其中:
DD是数据元素的有限集,是数据元素的有限集,SS是是DD上关系的有限集。
上关系的有限集。
数据结构主要指数据结构主要指逻辑结构逻辑结构和和物理结构物理结构12v数据之间的相互关系称为数据之间的相互关系称为逻辑结构逻辑结构,即从逻辑,即从逻辑关系上描述数据,与数据的存储无关,是独立关系上描述数据,与数据的存储无关,是独立于计算机的。
于计算机的。
通常分为四类基本结构通常分为四类基本结构:
集合集合结构中的数据元素除了同属于一种类型外,结构中的数据元素除了同属于一种类型外,别无其它关系。
别无其它关系。
线性结构线性结构结构中的数据元素之间存在一对一的关结构中的数据元素之间存在一对一的关系。
系。
树形结构树形结构结构中的数据元素之间存在一对多的关结构中的数据元素之间存在一对多的关系。
系。
图状结构或网状结构图状结构或网状结构结构中的数据元素之间存在结构中的数据元素之间存在多对多的关系多对多的关系13v物理结构物理结构亦称亦称存储结构存储结构,是数据的逻辑结构在,是数据的逻辑结构在计算机存储器内的表示(或映像),依赖于计计算机存储器内的表示(或映像),依赖于计算机。
算机。
v存储结构可分为存储结构可分为4大类:
大类:
顺序、链式、索引、哈希顺序、链式、索引、哈希14顺序存储结构顺序存储结构顺序存储结构顺序存储结构数据结点结构数据结点结构把逻辑上相邻的结点存储在物理位置相邻的存储单把逻辑上相邻的结点存储在物理位置相邻的存储单元里,数据元素之间的逻辑关系由存储单元的邻接元里,数据元素之间的逻辑关系由存储单元的邻接关系来体现,通常在程序设计中用数组表示。
关系来体现,通常在程序设计中用数组表示。
顺序存储是把数据元素按某种顺序存放在一块连续顺序存储是把数据元素按某种顺序存放在一块连续的存储单元中的存储形式。
的存储单元中的存储形式。
连续存放。
逻辑上相邻,物理连续存放。
逻辑上相邻,物理上也相邻;上也相邻;结构简单,易实现;结构简单,易实现;插入、删除操作不便(需大量插入、删除操作不便(需大量移动元素)。
移动元素)。
15链式存储结构链式存储结构链式存储结构链式存储结构数据结点结构数据结点结构逻辑上相邻的结点在物理位置可不相邻。
结点之间的逻辑关逻辑上相邻的结点在物理位置可不相邻。
结点之间的逻辑关系是由附加的指针字段表示的。
即在每一格数据元素中增加系是由附加的指针字段表示的。
即在每一格数据元素中增加一个存放地址的指针,用指针来表示数据元素之间的逻辑关一个存放地址的指针,用指针来表示数据元素之间的逻辑关系。
以链表形式将数据元素存放于任意存储单元中,可连续系。
以链表形式将数据元素存放于任意存储单元中,可连续存放,也可以不连续存放,以指针实现链表间的联系。
通常存放,也可以不连续存放,以指针实现链表间的联系。
通常用程序设计语言中的指针类型来描述用程序设计语言中的指针类型来描述。
非连续存放,借助指针来表示非连续存放,借助指针来表示元素间的关系;元素间的关系;插入、删除操作简单,只要修插入、删除操作简单,只要修改指针即可;改指针即可;结构较复杂,需要额外存储空结构较复杂,需要额外存储空间。
间。
16索引存储结构索引存储结构索引存储结构索引存储结构数据结点结构数据结点结构在建立结点信息的同时,建立附加的索引表。
索引表中的每一在建立结点信息的同时,建立附加的索引表。
索引表中的每一项称为索引项,索引项的一般形式是:
(关键字、地址),关项称为索引项,索引项的一般形式是:
(关键字、地址),关键字是唯一标识一个结点的那些数据项。
每个结点在索引表中键字是唯一标识一个结点的那些数据项。
每个结点在索引表中对应一个索引项,称该索引表为稠密索引,一组结点在索引表对应一个索引项,称该索引表为稠密索引,一组结点在索引表中对应一个索引项称该索引表为稀疏索引。
通过索引表记录逻中对应一个索引项称该索引表为稀疏索引。
通过索引表记录逻辑号(记录号)和物理号(存储序号)之间的对应关系辑号(记录号)和物理号(存储序号)之间的对应关系。
非连续存放;非连续存放;检索速度快;检索速度快;增、删操作简单。
增、删操作简单。
17散列存储结构散列存储结构散列存储结构散列存储结构在数据元素与存在数据元素与存储位置之位置之间建立一种存建立一种存储关系关系F,根据,根据这种关系种关系F,已知元素,已知元素E,就可以得到的存,就可以得到的存储地址,即地址,即D=F(E)。
哈希)。
哈希查找中的哈希表就是找中的哈希表就是这样一种存一种存储结构。
构。
特点:
特点:
数据元素数据元素间无内在无内在联系;系;存存储形式不定。
形式不定。
18例:
复数例:
复数3.02.3i的两种存储方式:
的两种存储方式:
2.303043.00300040803043.0030004082.3法法1:
地址:
地址内容内容法法2:
地址:
地址内容内容19v同一种逻辑结构可采用不同的存储方法同一种逻辑结构可采用不同的存储方法(以上四种之一或组合),这主要考虑(以上四种之一或组合),这主要考虑的是运算方便及算法的时空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 单链表
![提示](https://static.bdocx.com/images/bang_tan.gif)