《数据结构》教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构》教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 教学 课件
- 资源描述:
-
1、数据结构教学课件课程简介课程简介 数据结构是计算机专业的一门专业基础课程,很数据结构是计算机专业的一门专业基础课程,很多后续课程都要用到本课程所涉及的知识。例如,程多后续课程都要用到本课程所涉及的知识。例如,程序设计、编译技术和操作系统等课程都要使用一些基序设计、编译技术和操作系统等课程都要使用一些基本的数据结构及其相关的算法;本课程讨论的其他一本的数据结构及其相关的算法;本课程讨论的其他一些数据结构,如广义表、集合以及图等也是很多应用些数据结构,如广义表、集合以及图等也是很多应用领域经常涉及的。本课程的目的是介绍一些最常用的领域经常涉及的。本课程的目的是介绍一些最常用的数据结构,阐明数据结构
2、内在的逻辑关系,讨论它们数据结构,阐明数据结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种数据结构,讨论在计算机中的存储表示,并结合各种数据结构,讨论其各种操作的实现算法。其各种操作的实现算法。2022-11-11本章概述本章概述 本章将概括地介绍一些基本概念和术语,包括数本章将概括地介绍一些基本概念和术语,包括数据和数据结构、数据的逻辑结构和存储结构、数据类据和数据结构、数据的逻辑结构和存储结构、数据类型、算法的概念及描述、算法的复杂度分析等。型、算法的概念及描述、算法的复杂度分析等。2022-11-111.1 1.1 引言引言 计算机应用广泛,加工处理的对象也在发展:计算机应用
3、广泛,加工处理的对象也在发展:由纯粹的数值数据发展到字符、表格和图像等各由纯粹的数值数据发展到字符、表格和图像等各种具有一定结构的数据。种具有一定结构的数据。为了设计出一个为了设计出一个“好好”的程序,必须分析待处理的程序,必须分析待处理的对象的特性以及各对象之间存在的关系,这就是数的对象的特性以及各对象之间存在的关系,这就是数据结构这门学科形成和发展的背景。据结构这门学科形成和发展的背景。2022-11-11 用计算机解决一个具体问题时,一般需要经过用计算机解决一个具体问题时,一般需要经过以下几个步骤:以下几个步骤:首先分析实际问题并从中抽象出一个适当的数首先分析实际问题并从中抽象出一个适当
4、的数学模型,然后设计一个解决此数学模型的算法,最学模型,然后设计一个解决此数学模型的算法,最后编制出程序上机调试,直至得到最终的解答,其后编制出程序上机调试,直至得到最终的解答,其过程如图所示。过程如图所示。2022-11-11 寻求数学模型的实质是分析问题,从中提取操作寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间的关系,然后使用的对象,并找出这些操作对象之间的关系,然后使用数学模型加以描述。数学模型加以描述。数值计算问题的数学模型一般可用数学方程或数数值计算问题的数学模型一般可用数学方程或数学公式来描述,而更多的非数值计算问题无法用数学学公式来描述,而更多的非数值
5、计算问题无法用数学方程加以描述。下面给出几个例子。方程加以描述。下面给出几个例子。2022-11-11 【例【例1-11-1】某单位职工档案管理问题。为了简单,】某单位职工档案管理问题。为了简单,假定每个职工的档案只包括以下假定每个职工的档案只包括以下5 5项:职工号、姓名、项:职工号、姓名、性别、出生日期和职称。一般来说,档案管理人员很性别、出生日期和职称。一般来说,档案管理人员很可能将这些档案组织成表格形式,如表所示,表中的可能将这些档案组织成表格形式,如表所示,表中的每一行反映了一个职工的基本情况。每一行反映了一个职工的基本情况。2022-11-11 本问题中的处理要求包括所有能用计算机
6、完成的档本问题中的处理要求包括所有能用计算机完成的档案管理工作,至少应包含以下功能:案管理工作,至少应包含以下功能:(1)(1)查找,需要时在表格中找出某人的档案。查找,需要时在表格中找出某人的档案。(2)(2)读取,阅读通过查找找到的档案。读取,阅读通过查找找到的档案。(3)(3)插入,调入新职工时将该职工的档案加入表格中。插入,调入新职工时将该职工的档案加入表格中。(4)(4)删除,某职工调离时,从表格中撤销其档案。删除,某职工调离时,从表格中撤销其档案。(5)(5)更新,某职工情况变化(如晋升职称)时,修改档案更新,某职工情况变化(如晋升职称)时,修改档案的有关内容。的有关内容。2022
7、-11-11 上述每一项功能又可称为一个上述每一项功能又可称为一个“运算运算”。由此,。由此,从职工档案管理问题抽象出来的数学模型便包含职工从职工档案管理问题抽象出来的数学模型便包含职工档案表和对此表进行的各种运算。在这类管理问题的档案表和对此表进行的各种运算。在这类管理问题的数学模型中,计算机处理的对象之间通常存在着一种数学模型中,计算机处理的对象之间通常存在着一种最简单的线性关系,这类数学模型可称为线性的数据最简单的线性关系,这类数学模型可称为线性的数据结构。诸如此类的还有电话自动查号系统、排课系统、结构。诸如此类的还有电话自动查号系统、排课系统、仓库库存管理系统等各种应用系统。仓库库存管
8、理系统等各种应用系统。2022-11-11 【例【例1-21-2】UNIXUNIX操作系统中文件系统的系统结构图。操作系统中文件系统的系统结构图。UNIXUNIX操作系统中文件系统的底层是根目录,根目录下包含操作系统中文件系统的底层是根目录,根目录下包含binbin、liblib、useruser、etcetc等一级子目录,而等一级子目录,而binbin目录下又包含目录下又包含mathmath、dsds、swsw等二级子目录,等二级子目录,useruser目录下又包含目录下又包含yinyin、xiexie、tangtang等二级子目录,等二级子目录,yinyin目录下有目录下有Linklist
9、.cLinklist.c、Stack.cStack.c和和Tree.cTree.c等若干个文件,如图所示。等若干个文件,如图所示。2022-11-11 如果将这些目录和文件都画在一张图上,它们之间如果将这些目录和文件都画在一张图上,它们之间所呈现的是一种层次关系,从上到下按层进行展开形成所呈现的是一种层次关系,从上到下按层进行展开形成一棵倒长的一棵倒长的“树树”。“树根树根”是系统的根目录,其他目是系统的根目录,其他目录和文件是这棵树上的录和文件是这棵树上的“树叶树叶”,从根结点到某个叶子,从根结点到某个叶子结点经过的路径就是当前文件的绝对路径。由此可见,结点经过的路径就是当前文件的绝对路径。
10、由此可见,“树树”也可以是某些非数值计算问题的数学模型,它也也可以是某些非数值计算问题的数学模型,它也是一种数据结构。是一种数据结构。“树树”状结构的模型在生活中接触状结构的模型在生活中接触的也比较多,如国家行政区域规划、书籍目录等。的也比较多,如国家行政区域规划、书籍目录等。2022-11-11 【例【例1-31-3】比赛编排问题。有】比赛编排问题。有6 6支球队进行足球比赛,支球队进行足球比赛,分别用分别用V1V1、V2V2、V3V3、V4V4、V5V5、V6V6表示这表示这6 6支球队,它们支球队,它们之间的比赛情况也可以用一个称为之间的比赛情况也可以用一个称为“图图”的数据结构来的数据
11、结构来表示,图中的每个顶点表示一个球队,如果从顶点表示,图中的每个顶点表示一个球队,如果从顶点ViVi到到VjVj之间存在有向边之间存在有向边ViVj,则表示球队,则表示球队ViVi战胜球队战胜球队VjVj,如如V1V1队战胜队战胜V2V2队,队,V2V2队战胜队战胜V3V3队,队,V3V3队战胜队战胜V5V5队等,这队等,这种胜负情况可以用图表示。种胜负情况可以用图表示。2022-11-11 由此可以看出,用点、点与点之间的线所构成的图由此可以看出,用点、点与点之间的线所构成的图也可以反映实际生产和生活中的某些特定对象之间的特也可以反映实际生产和生活中的某些特定对象之间的特定关系。诸如此类有
12、铁路交通图、教学编排图等。定关系。诸如此类有铁路交通图、教学编排图等。综合以上综合以上3 3个例子可见,描述非数值计算问题的数个例子可见,描述非数值计算问题的数学模型不再是数学方程,而是诸如表、树、图之类的数学模型不再是数学方程,而是诸如表、树、图之类的数据结构及其运算。据结构及其运算。因此可以说,数据结构课程主要是研究非数值性程因此可以说,数据结构课程主要是研究非数值性程序设计中所出现的计算机操作对象以及它们之间的关系序设计中所出现的计算机操作对象以及它们之间的关系和运算等的学科。和运算等的学科。2022-11-11 在美国,数据结构作为一门独立的课程开始于在美国,数据结构作为一门独立的课程
13、开始于19681968年。当时,数据结构几乎和图论,特别是表、树的理年。当时,数据结构几乎和图论,特别是表、树的理论为同义语。论为同义语。数据结构在计算机学科中起着承上启下的作用,在数据结构在计算机学科中起着承上启下的作用,在计算机技术的各个领域也有着广泛的应用。计算机技术的各个领域也有着广泛的应用。学习数据结构的目的是了解计算机处理对象的特性,学习数据结构的目的是了解计算机处理对象的特性,将实际问题中所涉及的处理对象在计算机中表示出来将实际问题中所涉及的处理对象在计算机中表示出来并对它们进行处理。并对它们进行处理。2022-11-111.2 1.2 基本术语基本术语 数据数据(data)(d
14、ata):数据是客观事物的符号表示,在计算:数据是客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。理的符号的总称。数据元素数据元素(data element)(data element):数据元素是数据的基本:数据元素是数据的基本单位,在计算机程序中通常把它作为一个整体来处理。单位,在计算机程序中通常把它作为一个整体来处理。1.2.1 1.2.1 数据及相关概念数据及相关概念2022-11-11 例如,【例例如,【例1-21-2】中的文件系统的系统结构图的一】中的文件系统的系统结构图的一个目录,【例个目录
15、,【例1-31-3】中的】中的“图图”的一个圆圈都被称为一个的一个圆圈都被称为一个数据元素。有时,一个数据元素又可以由若干个数据项数据元素。有时,一个数据元素又可以由若干个数据项(data item)(data item)组成。如表下所示学生成绩表中的一条记组成。如表下所示学生成绩表中的一条记录为一个数据元素,而记录中的学号、姓名、语文等都录为一个数据元素,而记录中的学号、姓名、语文等都分别为一个数据项。数据项是数据的不可分割的最小单分别为一个数据项。数据项是数据的不可分割的最小单位。数据元素也可以仅有一个数据项。位。数据元素也可以仅有一个数据项。2022-11-11 数据对象数据对象(dat
16、a object)(data object):数据对象是性质相同:数据对象是性质相同的数据元素组成的集合,是数据的一个子集。数据元的数据元素组成的集合,是数据的一个子集。数据元素是数据对象的数据成员。素是数据对象的数据成员。例如,正整数的数据对象是集合例如,正整数的数据对象是集合N=1,2,3,4,N=1,2,3,4,,字母字符数据对象是集合字母字符数据对象是集合N=A,B,C,ZN=A,B,C,Z。数据结构数据结构(data structure)(data structure):是相互之间存在一:是相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括种或多种特定关系的数据元素的集合。
17、数据结构包括数据的逻辑结构和存储结构。数据的逻辑结构和存储结构。2022-11-11 逻辑结构的逻辑结构的4 4种形式种形式(1)(1)集合:数据元素间为松散的关系。在集合结构中各元集合:数据元素间为松散的关系。在集合结构中各元素之间,除了素之间,除了“同属于某一个数据对象同属于某一个数据对象”的关系外,再的关系外,再无其他的关系,如图无其他的关系,如图(a)(a)所示。所示。1.2.2 1.2.2 数据的逻辑结构数据的逻辑结构2022-11-11(2)(2)线性结构:数据元素间为严格的一对一关系,除第线性结构:数据元素间为严格的一对一关系,除第一个元素外,其他元素只有一个前驱,除最后一个元一
18、个元素外,其他元素只有一个前驱,除最后一个元素外,其他元素只有一个后继,如图素外,其他元素只有一个后继,如图(b)(b)所示。所示。(3)(3)树状结构:数据元素之间为严格的一对多的关系,树状结构:数据元素之间为严格的一对多的关系,即一个元素只有一个前驱,但可以有多个后继,如图即一个元素只有一个前驱,但可以有多个后继,如图(c)(c)所示。所示。(4)(4)图状结构:数据元素之间存在多对多的关系,也就图状结构:数据元素之间存在多对多的关系,也就是说元素间的逻辑关系可以是任意的。图状结构如图是说元素间的逻辑关系可以是任意的。图状结构如图(d)(d)所示。所示。2022-11-11简单地说,数据结
19、构就是带有结构的数据元素简单地说,数据结构就是带有结构的数据元素的集合。的集合。数据结构可以用二元组来进行数学意义上的形数据结构可以用二元组来进行数学意义上的形式定义:式定义:Data_Structure=(DData_Structure=(D,R)R)其中,其中,D D是数据元素的有限集,即数据对象;是数据元素的有限集,即数据对象;R R是是D D中所有数据元素之间的关系的有限集。中所有数据元素之间的关系的有限集。2022-11-11 【例【例1-41-4】为毕业设计小组设计一个数据结构。假设每】为毕业设计小组设计一个数据结构。假设每个小组的关系是个小组的关系是1 1名教师指导名教师指导11
20、0110名学生,则数据结构的名学生,则数据结构的二元组表示如下:二元组表示如下:Group=(P,R)Group=(P,R)其中,其中,P=T,G1,Gn,1n10P=T,G1,Gn,1n10;R=|1in,1n10R=|1in,1n10。上述数据结构的定义是一种数学意义上的定义。上述数据结构的定义是一种数学意义上的定义。“数据结构数据结构”定义中的定义中的“关系关系”是指数据间的逻辑关系,是指数据间的逻辑关系,故也称数据结构为逻辑结构。故也称数据结构为逻辑结构。2022-11-11 可将集合、树状结构、图状结构归纳为非线性结构。可将集合、树状结构、图状结构归纳为非线性结构。因此,数据的逻辑结
21、构可分为两大类,即线性结构和非因此,数据的逻辑结构可分为两大类,即线性结构和非线性结构。线性结构。然而,讨论数据结构的目的是在计算机中实现对它然而,讨论数据结构的目的是在计算机中实现对它的操作,因此还需研究如何在计算机中表示它,即数据的操作,因此还需研究如何在计算机中表示它,即数据的存储结构,又称物理结构。的存储结构,又称物理结构。2022-11-11 数据的逻辑结构:指根据实际问题的需要而选择数据的逻辑结构:指根据实际问题的需要而选择设计,面向问题与计算机本身无关,是不依赖于机器设计,面向问题与计算机本身无关,是不依赖于机器的。的。数据存储结构:指数据在计算机中的物理表示和数据存储结构:指数
22、据在计算机中的物理表示和存储的方式。涉及数据元素及其关系在存储器中的物存储的方式。涉及数据元素及其关系在存储器中的物理位置、机器响应的速度等方面的因素,物理结构的理位置、机器响应的速度等方面的因素,物理结构的设计与计算机密切相关。设计与计算机密切相关。1.2.3 1.2.3 数据的存储结构数据的存储结构2022-11-11 计算机中存储信息的最小单位叫做位计算机中存储信息的最小单位叫做位(bit)(bit),8 8位位可表示一个字节可表示一个字节(byte)(byte),两个字节称为一个字,两个字节称为一个字(word)(word),字节、字或更多的二进制位可称为位串,这个位串称字节、字或更多
23、的二进制位可称为位串,这个位串称为元素为元素(element)(element)或结点或结点(node)(node)。当数据元素由若干。当数据元素由若干个数据项组成时,则位串中对应于每个数据项的子位个数据项组成时,则位串中对应于每个数据项的子位串称为数据域串称为数据域(data field)(data field)。2022-11-11 线性表的逻辑结构是:除第一个元素外,其他线性表的逻辑结构是:除第一个元素外,其他元素只有一个前驱,除最后一个元素外,其他元素元素只有一个前驱,除最后一个元素外,其他元素只有一个后继。只有一个后继。线性表在计算机中的表示和存储有两种方式:线性表在计算机中的表示和
24、存储有两种方式:用连续的存储单元存储;用连续的存储单元存储;用分散的存储单元存储,并用指针将其连接。用分散的存储单元存储,并用指针将其连接。2022-11-11 数据元素之间的关系在计算机中有两种不同的存数据元素之间的关系在计算机中有两种不同的存储方法:储方法:顺序存储顺序存储 链式存储。链式存储。顺序存储:把数据元素依次存储在一组地址连续顺序存储:把数据元素依次存储在一组地址连续的存储单元中,元素间的逻辑关系由存储单元的位置的存储单元中,元素间的逻辑关系由存储单元的位置直接体现直接体现,由此得到的存储表示称为顺序存储。,由此得到的存储表示称为顺序存储。2022-11-11顺序存储结构的特点是
25、所有元素存放在一片连续顺序存储结构的特点是所有元素存放在一片连续的存储单元中,逻辑结构上相邻的元素存放到计算机的存储单元中,逻辑结构上相邻的元素存放到计算机内后仍然相邻,如图所示。内后仍然相邻,如图所示。2022-11-11 链式存储:将数据元素存储在一组任意的存储单链式存储:将数据元素存储在一组任意的存储单元中,而用附加的指针元中,而用附加的指针(pointer)(pointer)表示元素之间的逻表示元素之间的逻辑关系,由此得到的存储表示称为链式存储。辑关系,由此得到的存储表示称为链式存储。存储结构的每个结点都由两部分组成:数据域和存储结构的每个结点都由两部分组成:数据域和指针域。其中指针域
展开阅读全文