第十二章 数据结构精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第十二章 数据结构精选文档.ppt》由会员分享,可在线阅读,更多相关《第十二章 数据结构精选文档.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十二章 数据结构本讲稿第一页,共九十一页主要内容:主要内容:12.1数据结构的主要研究内容数据结构的主要研究内容12.2数据结构基本概念数据结构基本概念12.3 数据的逻辑结构数据的逻辑结构12.4 线性表及其顺序存储结构线性表及其顺序存储结构12.5栈和队列栈和队列12.6 树与二叉树树与二叉树12.7 查找技术查找技术12.8 排序技术排序技术本讲稿第二页,共九十一页12.1数据结构的主要研究内容数据结构的主要研究内容 12.1数据结构的主要研究内容数据结构的主要研究内容数据结构是相互之间存在一种或多种特定关系的数据元素的集数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结
2、构作为计算机的一门学科,主要研究和讨论以下三合。数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题:个方面的问题:1数据集合中各数据元素之间所固有的逻辑关系,即数据的数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。逻辑结构。数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。数据的逻辑结构可以看作是从具体问题抽象出来独立于计算机的。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的逻辑结构包含:的数学模型。数据的逻辑结构包含:(1)表示数据元素的信息;)表示数据元素的信息;(2)表
3、示各数据元素之间的前后件关系。)表示各数据元素之间的前后件关系。本讲稿第三页,共九十一页2各数据元素在计算机中存储关系,即数据的存储结构。各数据元素在计算机中存储关系,即数据的存储结构。数据的存储结构有顺序、链接、索引等。数据的存储结构是数据的存储结构有顺序、链接、索引等。数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。对机器语言而言,存储结构是具体的。一般计算机语言。对机器语言而言,存储结构是具体的。一般只在高级语言的层次上讨论存储结构。只在高级语言的层次上讨论存储结构。对各种数据结构进行的运算。对各种数据结构进
4、行的运算。3.数据的运算定义在数据的逻辑结构上,每种逻辑结构都有数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。最常用的检索、插入、删除、更新、排一个运算的集合。最常用的检索、插入、删除、更新、排序等运算实际上只是在抽象的数据上所施加的一系列抽象序等运算实际上只是在抽象的数据上所施加的一系列抽象的操作。所谓抽象的操作,是指只知道这些操作是的操作。所谓抽象的操作,是指只知道这些操作是“做什做什么么”,而无须考虑,而无须考虑“如何做如何做”。只有确定了存储结构之后,。只有确定了存储结构之后,才考虑如何具体实现这些运算。才考虑如何具体实现这些运算。本讲稿第四页,共九十一页12.2数
5、据结构基本概念数据结构基本概念 12.2.1数据数据 数数据据是是指指所所有有能能输输入入到到计计算算机机中中并并被被计计算算机机程程序序处处理理的的符符号号的的总总称称。数数据据是是信信息息的的载载体体,它它能能够够被被计计算算机机识识别别、存存储储和和加加工工处处理理,是是计计算算机机程程序序加加工工的的“原原料料”。随随着着计计算算机机应应用用领领域域的的扩扩大大,数数据据可可以以分分为为两两大大类类:一一类类是是整整数数、实实数数等等数数值值数数据据;另另一一类类是是图图形形、图图像像、声声音音、文文字字等等非非数数值值数数据据。这这里里要要注注意意数数据据并并不等于数字,数字是隶属于
6、数据的。不等于数字,数字是隶属于数据的。本讲稿第五页,共九十一页 12.2.2数据元素与数据项数据元素与数据项 数数据据元元素素也也称称为为元元素素、结结点点、顶顶点点或或记记录录,是是数数据据的的基基本本单单位位,在在计计算算机机程程序序中中通通常常作作为为一一个个整整体体进进行行考考虑虑和和处处理理。一一个个数数据据元元素素可可由由若若干干个个数数据据项项组组成成,数数据据项项是是数数据据的的最最小小单单位位。数数据据元元素素具具有有广广泛泛的的含含义义,一一般般来来说说,现现实实世世界界中中客客观观存存在在的的一一切切个个体体都都可可以以是是数数据据元元素素。例例如如在在表表12-1中中
7、,整整个个表表记记录录的的是是学学生生成成绩绩数数据据,每每个个学学生生的的记记录录行行是是其其中中一一个个数数据据元元素素,即即该该表表由由4个个数数据据元元素素构构成成,而而某某一一个个数数据据元元素素(记记录录行行)又又是是由由5个个数数据据项项组组成成。例例如如语语文文成成绩绩67则则是是表表中中第第一一个个数数据据元元素素(记录行)中的数据项。数据项是不可再分的数据内容。(记录行)中的数据项。数据项是不可再分的数据内容。本讲稿第六页,共九十一页数数据据对对象象是是性性质质相相同同的的数数据据元元素素的的集集合合。如如上上例例中中一一个个班班级级的的成成绩绩表表可可以以看看作作一一个个
8、数数据据对对象象。一一般般来来说说,人人们们不不会会同同时时处处理理特特征征完完全全不不同同且且互互相相之之间间没没有有任任何何关关系系的的各各类类数数据据元元素素,对对于于具具有有不不同同特特征征的的数数据据元元素素总总是是分分别别进行处理。进行处理。学号学号姓名姓名语语文文数学数学英英语语0406010104060101李李丽丽6767878783830406010204060102张鹏张鹏9292828264640406010304060103刘海刘海7878727276760406010404060104金玉金玉565668687171本讲稿第七页,共九十一页 12.2.3数据结构数据
9、结构数据元素都不是孤立存在的,而是在它们之间存在着某种特定的关数据元素都不是孤立存在的,而是在它们之间存在着某种特定的关系,这种数据元素相互之间的关系称为结构。在数据处理领域中,系,这种数据元素相互之间的关系称为结构。在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系通常把数据元素之间这种固有的关系简单地用前后件关系(或直接前或直接前驱与直接后继关系驱与直接后继关系)来描述。来描述。例如,在考虑一年四个季节的顺序关系时,则例如,在考虑一年四个季节的顺序关系时,则“春春”是是“夏夏”的前件(即直接前驱),而的前件(即直接前驱),而“夏夏”是是“春春”的后件(即直接后的后件(即直
10、接后继)。同样,继)。同样,“夏夏”是是“秋秋”的前件,的前件,“秋秋”是是“夏夏”的后件;的后件;“秋秋”是是“冬冬”的前件,的前件,“冬冬”是是“秋秋”的后件。的后件。前后件关系是数据元素之间的一个基本关系,但前后件关系所前后件关系是数据元素之间的一个基本关系,但前后件关系所表示的实际意义随具体对象的不同而不同。一般来说,数据元表示的实际意义随具体对象的不同而不同。一般来说,数据元素之间的任何关系都可以用前后件关系来描述。素之间的任何关系都可以用前后件关系来描述。本讲稿第八页,共九十一页 12.2.4数据的逻辑结构数据的逻辑结构通俗地说,数据结构是指带有结构的数据元素的集合。在通俗地说,数
11、据结构是指带有结构的数据元素的集合。在此,所谓结构实际上就是指数据元素之间的前后件关系。此,所谓结构实际上就是指数据元素之间的前后件关系。数据元素之间的前后件关系即指它们的逻辑关系,而与它数据元素之间的前后件关系即指它们的逻辑关系,而与它们在计算机中的存储位置无关。所谓数据的逻辑结构,是们在计算机中的存储位置无关。所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。指反映数据元素之间逻辑关系的数据结构。图图12-1 12-1 数据的逻辑结构数据的逻辑结构本讲稿第九页,共九十一页表中的每一行是一个数据元素(或记录、结点),它由学号、表中的每一行是一个数据元素(或记录、结点),它由学号、姓
12、名、各科成绩等数据项组成。表中数据元素之间的逻辑关系姓名、各科成绩等数据项组成。表中数据元素之间的逻辑关系是:对表中任一个结点,与它相邻的直接前趋(是:对表中任一个结点,与它相邻的直接前趋(Immediate Predecessor)最多只有一个;与表中任一结点相邻的直接后)最多只有一个;与表中任一结点相邻的直接后继(继(Immediate Successor)也最多只有一个。表中只有第一)也最多只有一个。表中只有第一个结点没有直接前趋,故称为开始结点;也只有最后一个结点个结点没有直接前趋,故称为开始结点;也只有最后一个结点没有直接后继,故称之为终端结点。上述结点间的关系构成了没有直接后继,故
13、称之为终端结点。上述结点间的关系构成了这张学生成绩表的逻辑结构。这张学生成绩表的逻辑结构。逻辑结构主要可分为线性结构(线性表、栈和队列)和非线性结逻辑结构主要可分为线性结构(线性表、栈和队列)和非线性结构(树、图和集合)。如图构(树、图和集合)。如图12-1所示。所示。本讲稿第十页,共九十一页12.2.5数据的存储结构数据的存储结构数据的存储结构又称为物理结构,是数据及其逻辑结构在计算机数据的存储结构又称为物理结构,是数据及其逻辑结构在计算机中的表示。在数据的存储结构中,不仅要存放各数据元素的信息,中的表示。在数据的存储结构中,不仅要存放各数据元素的信息,还存放元素之间的前后件关系的信息。数据
14、的存储结构属于具体还存放元素之间的前后件关系的信息。数据的存储结构属于具体实现的视图,是面向计算机的,其基本目标是将数据及其逻辑关实现的视图,是面向计算机的,其基本目标是将数据及其逻辑关系存储到计算机的内存中。系存储到计算机的内存中。一般来说,一种数据的逻辑结构根据需要可以表示成多种一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用数据的存储结构有如下存储结构,常用数据的存储结构有如下4种。种。1顺序存储方式顺序存储方式每一个存储结点只含有一个数据元素;所有的存储结点相继每一个存储结点只含有一个数据元素;所有的存储结点相继存储在一个连续的存储区里;用存储结点之间的位置关系表存储在
15、一个连续的存储区里;用存储结点之间的位置关系表示数据元素之间的逻辑关系。示数据元素之间的逻辑关系。本讲稿第十一页,共九十一页2链式存储方式链式存储方式每一个存储结点不仅含有各数据元素,还包括指针。每一个指针每一个存储结点不仅含有各数据元素,还包括指针。每一个指针指向一个与本结点有逻辑关系的结点,即用指针表示逻辑关系。指向一个与本结点有逻辑关系的结点,即用指针表示逻辑关系。3索引存储方式索引存储方式每一个存储结点仅含有一个数据元素,所有的存储结点都连续存放。此每一个存储结点仅含有一个数据元素,所有的存储结点都连续存放。此外,增设一个索引表。外,增设一个索引表。4散列存储方式散列存储方式每一个存储
16、结点仅含有一个数据元素,数据元素按散列函数确定存储位每一个存储结点仅含有一个数据元素,数据元素按散列函数确定存储位置。置。数据的逻辑结构与数据的存储结构不一定相同。一般来说,一数据的逻辑结构与数据的存储结构不一定相同。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构。采用不种数据的逻辑结构根据需要可以表示成多种存储结构。采用不同的存储结构,其数据处理的效率是不相同的。同的存储结构,其数据处理的效率是不相同的。本讲稿第十二页,共九十一页数据的逻辑结构有两个要素:一是数据元素的集合;二是各数数据的逻辑结构有两个要素:一是数据元素的集合;二是各数据元素之间的前后件关系。对这两个要素的表示可
17、有两种方式:据元素之间的前后件关系。对这两个要素的表示可有两种方式:一是用二元关系表示;二是直观地用图形表示。一是用二元关系表示;二是直观地用图形表示。在二元关系表示中,将数据元素的集合记为在二元关系表示中,将数据元素的集合记为D,反映,反映D中中各数据元素之间的前后件关系记为各数据元素之间的前后件关系记为R。一个数据结构就可。一个数据结构就可以表示成以表示成B=(D,R)的二元组关系,其中)的二元组关系,其中B表示数据结构。表示数据结构。例如:假设例如:假设a和和b是是D中的两个数据,则二元组中的两个数据,则二元组(a,b)表示表示a是是b的前件,的前件,b是是a的后件。这样,在的后件。这样
18、,在D中的每两个元素之中的每两个元素之间的关系都可以用这种二元组来表示。间的关系都可以用这种二元组来表示。12.3 数据的逻辑结构数据的逻辑结构12.3.1逻辑结构的表现方式逻辑结构的表现方式本讲稿第十三页,共九十一页 在在数数据据结结构构的的图图形形表表示示中中,对对于于数数据据集集合合D中中的的每每一一个个数数据据元元素素用用中中间间标标有有元元素素值值的的方方框框表表示示,一一般般称称之之为为数数据据结结点点,并并简简称称为为结结点点。为为了了进进一一步步表表示示各各数数据据元元素素之之间间的的前前后后件件关关系系,对对于于关关系系R中中的的每每一一个个二二元元组组,用用一一条条有有向向
19、线线段段从从前前件件结结点点指指向向后后件件结结点点。例例如如,一一年年四四季的数据结构可以用如图季的数据结构可以用如图12-2所示的图形来表示。所示的图形来表示。春夏秋冬图12-2 逻辑结构的图形表示本讲稿第十四页,共九十一页1线性结构线性结构如果一个非空的数据结构满足下列两个条件:如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点。)有且只有一个根结点。(2)每一个结点最多有一个前件,也最多有一个后件。)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,线性结构又称线性表。则称该数据结构为线性结构,线性结构又称线性表。2线性结构逻辑特征线性结构逻辑特征(1
20、)存在唯一的一个被称作)存在唯一的一个被称作“第一个第一个”的数据元素。的数据元素。(2)存在唯一的一个被称作)存在唯一的一个被称作“最后一个最后一个”的数据元素。的数据元素。(3)除第一个之外,集合中的每个数据元素均只有一个前驱。)除第一个之外,集合中的每个数据元素均只有一个前驱。(4)除最后一个之外,集合中的每个数据元素均只有一个后继。)除最后一个之外,集合中的每个数据元素均只有一个后继。12.3.2 线性逻辑结构线性逻辑结构本讲稿第十五页,共九十一页在线性结构中,各数据元素之间的前后关系是很简单的。在线性结构中,各数据元素之间的前后关系是很简单的。如上述的一年四季这个数据结构,属于线性结
21、构。线性如上述的一年四季这个数据结构,属于线性结构。线性表是一个线性结构。表是一个线性结构。特别需要说明的是在一个线性结构中插入或删除任何一个特别需要说明的是在一个线性结构中插入或删除任何一个结点后还应是线性结构。如果一个数据结构满足上述两个结点后还应是线性结构。如果一个数据结构满足上述两个条件,但当在此数据结构中插入或删除任何一个结点后就条件,但当在此数据结构中插入或删除任何一个结点后就不满足这两个条件,则该数据结构不能称为线性结构。如不满足这两个条件,则该数据结构不能称为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。果一个数据结构不是线性结构,则称之为非线性结构。本讲稿第十六
22、页,共九十一页 非非线线性性结结构构的的逻逻辑辑特特征征是是一一个个结结点点可可能能有有多多个个直直接接前前驱驱和和直直接接后后继继。例例如如,树树和和图图都都是是非非线线性性结结构构。线线性性结结构构与与非非线线性性结结构构都都可可以以是是空空的的数数据据结结构构。一一个个空空的的数数据据结结构构究究竟竟是是属属于于线线性性结结构构还还是是属属于于非非线线性性结结构构,这这要要根根据据具具体体情情况况来来确确定定。如如果果对对该该数数据据结结构构的的运运算算是是按按线线性性结结构构的的规规则则来来处处理理的的,则则属属于于线线性性结结构构,否否则属于非线性结构。则属于非线性结构。12.3.3
23、非线性逻辑结构非线性逻辑结构本讲稿第十七页,共九十一页线性表是最基本、最简单、也是最常用的一种数据结构。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其他数据元素都是首第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。一种数据结构。12.4 线性表及其顺序存储结构线
24、性表及其顺序存储结构12.4.1线性表的基本概念线性表的基本概念本讲稿第十八页,共九十一页线性结构特点如下:线性结构特点如下:1有且仅有一个开始结点有且仅有一个开始结点(表头结点表头结点),它没有直接前驱,它没有直接前驱,只有一个直接后继。只有一个直接后继。2有且仅有一个终端结点有且仅有一个终端结点(表尾结点表尾结点),它没有直接后继,只有,它没有直接后继,只有一个直接前驱。一个直接前驱。3其他结点都有一个直接前驱和直接后继。其他结点都有一个直接前驱和直接后继。4元素之间为一对一的线性关系。元素之间为一对一的线性关系。需要注意的是线性表中数据元素的相对位置是确定的,如果需要注意的是线性表中数据
25、元素的相对位置是确定的,如果把一个线性表中的数据元素的位置做改动,那么变动后的线把一个线性表中的数据元素的位置做改动,那么变动后的线性表与原来的线性表是两个不同的线性表。在实现线性表数性表与原来的线性表是两个不同的线性表。在实现线性表数据元素的存储方面,一般可用顺序存储结构和链式存储结构据元素的存储方面,一般可用顺序存储结构和链式存储结构两种方法。两种方法。本讲稿第十九页,共九十一页12.4.2 线性表的顺序存储结构线性表的顺序存储结构 线线性性表表的的顺顺序序存存储储是是指指用用一一组组地地址址连连续续的的存存储储单单元元依依次次存存储储线线性性表表中中的的数数据据元元素素,从从而而使使得得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十二章 数据结构精选文档 第十二 数据结构 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内