第七讲数据结构优秀课件.ppt
《第七讲数据结构优秀课件.ppt》由会员分享,可在线阅读,更多相关《第七讲数据结构优秀课件.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七讲数据结构第1页,本讲稿共78页程序程序数据结构算法数据结构算法程序设计语言程序设计语言第2页,本讲稿共78页主要学习内容主要学习内容第一章、第一章、数据结构概述数据结构概述1、基本概念、基本概念2、逻辑结构与物理结构、逻辑结构与物理结构3、顺序存储与链式存储、顺序存储与链式存储第二章、线性结构第二章、线性结构线性表、栈、队列、数组线性表、栈、队列、数组第三章、非线性结构第三章、非线性结构树与二叉树树与二叉树第3页,本讲稿共78页第一章第一章数据结构概述数据结构概述一、数据结构的基本概念和术语一、数据结构的基本概念和术语一、数据结构的基本概念和术语一、数据结构的基本概念和术语1.1.数据数
2、据数据数据:对客观事物的符号表示,在计算机中是指所有能输:对客观事物的符号表示,在计算机中是指所有能输:对客观事物的符号表示,在计算机中是指所有能输:对客观事物的符号表示,在计算机中是指所有能输入到计算机中并被计算机程序处理的符号的总称。包括入到计算机中并被计算机程序处理的符号的总称。包括入到计算机中并被计算机程序处理的符号的总称。包括入到计算机中并被计算机程序处理的符号的总称。包括文字、符号、数字、图像、声音等。文字、符号、数字、图像、声音等。文字、符号、数字、图像、声音等。文字、符号、数字、图像、声音等。2.2.数据元素:数据元素:数据元素:数据元素:数据的基本单位,在计算机程序中通常作为
3、一个整体数据的基本单位,在计算机程序中通常作为一个整体数据的基本单位,在计算机程序中通常作为一个整体数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。进行考虑和处理。进行考虑和处理。进行考虑和处理。3.3.数据项:数据项:数据项:数据项:数据元素的组成部分。数据元素的组成部分。数据元素的组成部分。数据元素的组成部分。4.4.数据结构:数据结构:数据结构:数据结构:是相互之间存在一种或多种特定关系的数据元是相互之间存在一种或多种特定关系的数据元是相互之间存在一种或多种特定关系的数据元是相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括三方面的内容:逻辑结构(从素的集合。数据
4、结构包括三方面的内容:逻辑结构(从素的集合。数据结构包括三方面的内容:逻辑结构(从素的集合。数据结构包括三方面的内容:逻辑结构(从具体问题抽象出来的数学模型)、存储结构(逻辑结构具体问题抽象出来的数学模型)、存储结构(逻辑结构具体问题抽象出来的数学模型)、存储结构(逻辑结构具体问题抽象出来的数学模型)、存储结构(逻辑结构在计算机存储器里的实现)、数据运算(检索、插入、在计算机存储器里的实现)、数据运算(检索、插入、在计算机存储器里的实现)、数据运算(检索、插入、在计算机存储器里的实现)、数据运算(检索、插入、删除、更新、排序等)。删除、更新、排序等)。删除、更新、排序等)。删除、更新、排序等)
5、。第4页,本讲稿共78页二、数据的逻辑结构和存储结构(物理结构)二、数据的逻辑结构和存储结构(物理结构)1.1.数据的逻辑结构:数据元素之间原本存在的逻数据的逻辑结构:数据元素之间原本存在的逻数据的逻辑结构:数据元素之间原本存在的逻数据的逻辑结构:数据元素之间原本存在的逻辑关系,称为数据的逻辑结构。它只是抽象辑关系,称为数据的逻辑结构。它只是抽象辑关系,称为数据的逻辑结构。它只是抽象辑关系,称为数据的逻辑结构。它只是抽象地反映数据元素之间的关系。地反映数据元素之间的关系。地反映数据元素之间的关系。地反映数据元素之间的关系。2.2.四种基本的数据结构(集合、线性结构、树形四种基本的数据结构(集合
6、、线性结构、树形四种基本的数据结构(集合、线性结构、树形四种基本的数据结构(集合、线性结构、树形结构、图状结构)。结构、图状结构)。结构、图状结构)。结构、图状结构)。第5页,本讲稿共78页3.3.数据的存储结构:数据的逻辑结构在计算机中的表示称为数据的存储结构:数据的逻辑结构在计算机中的表示称为数据的存储结构:数据的逻辑结构在计算机中的表示称为数据的存储结构:数据的逻辑结构在计算机中的表示称为数据的存储结构,又称物理结构。为将逻辑结构全面正数据的存储结构,又称物理结构。为将逻辑结构全面正数据的存储结构,又称物理结构。为将逻辑结构全面正数据的存储结构,又称物理结构。为将逻辑结构全面正确地在计算
7、机中表示出来,存储结构应包括数据元素自确地在计算机中表示出来,存储结构应包括数据元素自确地在计算机中表示出来,存储结构应包括数据元素自确地在计算机中表示出来,存储结构应包括数据元素自身的值和数据元素之间的关系两个方面。通常将数据元身的值和数据元素之间的关系两个方面。通常将数据元身的值和数据元素之间的关系两个方面。通常将数据元身的值和数据元素之间的关系两个方面。通常将数据元素在计算机中的表示称为结点,而将组成数据元素的数素在计算机中的表示称为结点,而将组成数据元素的数素在计算机中的表示称为结点,而将组成数据元素的数素在计算机中的表示称为结点,而将组成数据元素的数据项在计算机中的表示称为数据域。据
8、项在计算机中的表示称为数据域。据项在计算机中的表示称为数据域。据项在计算机中的表示称为数据域。第6页,本讲稿共78页4.两种基本的存储方法两种基本的存储方法(1 1)顺序存储方法(数组)。)顺序存储方法(数组)。)顺序存储方法(数组)。)顺序存储方法(数组)。顺序存储结构是把数据元素存储在一段连续顺序存储结构是把数据元素存储在一段连续顺序存储结构是把数据元素存储在一段连续顺序存储结构是把数据元素存储在一段连续的存储单元里,结点之间的关系由存储单元的邻的存储单元里,结点之间的关系由存储单元的邻的存储单元里,结点之间的关系由存储单元的邻的存储单元里,结点之间的关系由存储单元的邻接关系来直接或间接地
9、反映。接关系来直接或间接地反映。接关系来直接或间接地反映。接关系来直接或间接地反映。顺序存储结构的主要特点是:结点中只有自顺序存储结构的主要特点是:结点中只有自顺序存储结构的主要特点是:结点中只有自顺序存储结构的主要特点是:结点中只有自身信息域,没有连接信息域,因此存储密度大,身信息域,没有连接信息域,因此存储密度大,身信息域,没有连接信息域,因此存储密度大,身信息域,没有连接信息域,因此存储密度大,存储空间利用率高;存储空间是连续的,因而可存储空间利用率高;存储空间是连续的,因而可存储空间利用率高;存储空间是连续的,因而可存储空间利用率高;存储空间是连续的,因而可以通过计算机直接确定数据结构
10、中任意一个节点以通过计算机直接确定数据结构中任意一个节点以通过计算机直接确定数据结构中任意一个节点以通过计算机直接确定数据结构中任意一个节点的存储地址。的存储地址。的存储地址。的存储地址。第7页,本讲稿共78页(2 2)链式存储方法(指针)。)链式存储方法(指针)。)链式存储方法(指针)。)链式存储方法(指针)。链式存储结构就是借助指针来指示逻辑上相邻的链式存储结构就是借助指针来指示逻辑上相邻的数据元素在存储器中的物理位置。因此,可以把逻辑数据元素在存储器中的物理位置。因此,可以把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中。上相邻的两个元素存放在物理上不相邻的存储单元中。链式存储结构的
11、主要特点是:结构中除自身信息外,链式存储结构的主要特点是:结构中除自身信息外,还有表示连接信息的指针域,因此比顺序结构的存储还有表示连接信息的指针域,因此比顺序结构的存储密度小,存储空间利用率低。存储空间可以是不连续密度小,存储空间利用率低。存储空间可以是不连续的,因而更适合动态数据的管理。的,因而更适合动态数据的管理。第8页,本讲稿共78页5.两种结构之间的关系:两种结构之间的关系:一般地,程序算法的设计取决于逻辑一般地,程序算法的设计取决于逻辑结构的设计,而算法的实现依赖于采用的存结构的设计,而算法的实现依赖于采用的存储结构。储结构。第9页,本讲稿共78页三、数据的运算三、数据的运算1.1
12、.概念:数据的运算是指对所定义的数据结构进行访问或操作。数据的运算是定概念:数据的运算是指对所定义的数据结构进行访问或操作。数据的运算是定概念:数据的运算是指对所定义的数据结构进行访问或操作。数据的运算是定概念:数据的运算是指对所定义的数据结构进行访问或操作。数据的运算是定义在数据的逻辑结构上的,但是运算的实现要在存储结构上进行。义在数据的逻辑结构上的,但是运算的实现要在存储结构上进行。义在数据的逻辑结构上的,但是运算的实现要在存储结构上进行。义在数据的逻辑结构上的,但是运算的实现要在存储结构上进行。2.2.几种基本运算:几种基本运算:几种基本运算:几种基本运算:插入:在数据结构的指定位置上增
13、添新的数据元素;插入:在数据结构的指定位置上增添新的数据元素;插入:在数据结构的指定位置上增添新的数据元素;插入:在数据结构的指定位置上增添新的数据元素;删除:删除数据结构中某个指定的数据元素;删除:删除数据结构中某个指定的数据元素;删除:删除数据结构中某个指定的数据元素;删除:删除数据结构中某个指定的数据元素;更新:改变数据结构中某个数据元素的值;更新:改变数据结构中某个数据元素的值;更新:改变数据结构中某个数据元素的值;更新:改变数据结构中某个数据元素的值;查找:在数据结构中寻找满足某个特定要求的数据元素;查找:在数据结构中寻找满足某个特定要求的数据元素;查找:在数据结构中寻找满足某个特定
14、要求的数据元素;查找:在数据结构中寻找满足某个特定要求的数据元素;排序:重新安排数据元素之间的逻辑顺序关系,使之按值由排序:重新安排数据元素之间的逻辑顺序关系,使之按值由排序:重新安排数据元素之间的逻辑顺序关系,使之按值由排序:重新安排数据元素之间的逻辑顺序关系,使之按值由小到大或小到大或小到大或小到大或由大到小的次序排列。由大到小的次序排列。由大到小的次序排列。由大到小的次序排列。从运算的性质来分,所有的运算可以分为两类:一类是加工型运算,从运算的性质来分,所有的运算可以分为两类:一类是加工型运算,从运算的性质来分,所有的运算可以分为两类:一类是加工型运算,从运算的性质来分,所有的运算可以分
15、为两类:一类是加工型运算,其运算改变了数据结构的值;另一类是引用型运算,其运算不改变数其运算改变了数据结构的值;另一类是引用型运算,其运算不改变数其运算改变了数据结构的值;另一类是引用型运算,其运算不改变数其运算改变了数据结构的值;另一类是引用型运算,其运算不改变数据结构,只对数据进行访问。据结构,只对数据进行访问。据结构,只对数据进行访问。据结构,只对数据进行访问。3.3.数据类型:一组具有相同特点的数据及这组数据上的运算,用数据类型数据类型:一组具有相同特点的数据及这组数据上的运算,用数据类型数据类型:一组具有相同特点的数据及这组数据上的运算,用数据类型数据类型:一组具有相同特点的数据及这
16、组数据上的运算,用数据类型来刻划。所谓数据类型是指一组值的集合及这个集合上的一组运算的来刻划。所谓数据类型是指一组值的集合及这个集合上的一组运算的来刻划。所谓数据类型是指一组值的集合及这个集合上的一组运算的来刻划。所谓数据类型是指一组值的集合及这个集合上的一组运算的总称。总称。总称。总称。第10页,本讲稿共78页第二章、线性结构第二章、线性结构第一节第一节第一节第一节 线性表线性表线性表线性表一、线性表的基本概念一、线性表的基本概念一、线性表的基本概念一、线性表的基本概念1.1.定义:线性结构是定义:线性结构是定义:线性结构是定义:线性结构是n(n=0)n(n=0)个结点的有穷序列。当个结点的
17、有穷序列。当个结点的有穷序列。当个结点的有穷序列。当n=0n=0时线性结构记为时线性结构记为时线性结构记为时线性结构记为()()或或或或,称为空表。设,称为空表。设,称为空表。设,称为空表。设n(n0)n(n0)个结点的线性结构表示成:个结点的线性结构表示成:个结点的线性结构表示成:个结点的线性结构表示成:(a1,a2,.,an)(a1,a2,.,an),其中每个,其中每个,其中每个,其中每个aiai代表一个结点。代表一个结点。代表一个结点。代表一个结点。a1a1称为起始结点,称为起始结点,称为起始结点,称为起始结点,anan称为终端结点。称为终端结点。称为终端结点。称为终端结点。i i称为称
18、为称为称为aiai在线性表中的序号或位置。对任意一对相邻结点在线性表中的序号或位置。对任意一对相邻结点在线性表中的序号或位置。对任意一对相邻结点在线性表中的序号或位置。对任意一对相邻结点ai,ai+1(1=in)ai,ai+1(1=in),aiai称称称称为为为为ai+1ai+1的直接前趋,的直接前趋,的直接前趋,的直接前趋,ai+1ai+1称为称为称为称为aiai的直接后继。线性表的逻辑结构是线性的直接后继。线性表的逻辑结构是线性的直接后继。线性表的逻辑结构是线性的直接后继。线性表的逻辑结构是线性结构。所含结点的个数称为表长。没有结点的表称为空表。结构。所含结点的个数称为表长。没有结点的表称
19、为空表。结构。所含结点的个数称为表长。没有结点的表称为空表。结构。所含结点的个数称为表长。没有结点的表称为空表。2.2.基本特征:基本特征:基本特征:基本特征:均匀性:同一结构的结点具有相同的特性均匀性:同一结构的结点具有相同的特性均匀性:同一结构的结点具有相同的特性均匀性:同一结构的结点具有相同的特性(数据项的个数相同,对应项的类型也相数据项的个数相同,对应项的类型也相数据项的个数相同,对应项的类型也相数据项的个数相同,对应项的类型也相同同同同)。有序性:除起始结点没有直接前趋外,其他结点有且只有一个直接前趋;有序性:除起始结点没有直接前趋外,其他结点有且只有一个直接前趋;有序性:除起始结点
20、没有直接前趋外,其他结点有且只有一个直接前趋;有序性:除起始结点没有直接前趋外,其他结点有且只有一个直接前趋;除终端结点没有直接后继外,其他结点有且只有一个直接后继。除终端结点没有直接后继外,其他结点有且只有一个直接后继。除终端结点没有直接后继外,其他结点有且只有一个直接后继。除终端结点没有直接后继外,其他结点有且只有一个直接后继。第11页,本讲稿共78页3.3.基本运算:设基本运算:设基本运算:设基本运算:设L=(a1,a2,.,ai,.,an)L=(a1,a2,.,ai,.,an)(1 1)初始化)初始化)初始化)初始化INI(L)INI(L),结果是一个空表,结果是一个空表,结果是一个空
21、表,结果是一个空表L=L=。(2 2)求表长)求表长)求表长)求表长LEN(L)LEN(L),结果是,结果是,结果是,结果是L L的长度。的长度。的长度。的长度。(3 3)读表元)读表元)读表元)读表元(按位查找按位查找按位查找按位查找)GET(L,i)GET(L,i),结果是,结果是,结果是,结果是L L的第的第的第的第i i个个个个结点。结点。结点。结点。(4 4)定位)定位)定位)定位(按值查找按值查找按值查找按值查找)LOC(L,X)LOC(L,X),若,若,若,若L L中至少有一个值为中至少有一个值为中至少有一个值为中至少有一个值为X X的的的的结点且序号最小的是结点且序号最小的是结
22、点且序号最小的是结点且序号最小的是i i,结果为,结果为,结果为,结果为i i;否则,结果为;否则,结果为;否则,结果为;否则,结果为0 0。(5 5)插入)插入)插入)插入INS(L,X,i)INS(L,X,i),结果是,结果是,结果是,结果是L=(a1,.,ai-1,X,ai,.,an)L=(a1,.,ai-1,X,ai,.,an)(6 6)删除)删除)删除)删除DEL(L,i)DEL(L,i),结果是,结果是,结果是,结果是L=(a1,.,ai-1,ai+1,.,an)L=(a1,.,ai-1,ai+1,.,an)第12页,本讲稿共78页二、线性表的顺序存储结构二、线性表的顺序存储结构顺
23、序存储结构是指用一组地址连续的存贮单元依次存储线性表的顺序存储结构是指用一组地址连续的存贮单元依次存储线性表的顺序存储结构是指用一组地址连续的存贮单元依次存储线性表的顺序存储结构是指用一组地址连续的存贮单元依次存储线性表的元素,通常用数组实现。数组的物理实现是一块连续的存储空元素,通常用数组实现。数组的物理实现是一块连续的存储空元素,通常用数组实现。数组的物理实现是一块连续的存储空元素,通常用数组实现。数组的物理实现是一块连续的存储空间,它是按首址(表中第间,它是按首址(表中第间,它是按首址(表中第间,它是按首址(表中第1 1个元素的地址)十位移来访问每一个元素的地址)十位移来访问每一个元素的
24、地址)十位移来访问每一个元素的地址)十位移来访问每一个元素的。设个元素的。设个元素的。设个元素的。设loc(ai)aloc(ai)a表中元素表中元素表中元素表中元素i i的内存地址(的内存地址(的内存地址(的内存地址(cidcid););););loc(bi,j)bloc(bi,j)b表中(表中(表中(表中(i i,j j)元素的内存地址()元素的内存地址()元素的内存地址()元素的内存地址(c1id1c1id1,c2jd2c2jd2););););loc(ai)=loc(ai)=loc(ac)loc(ac)+(i-c)*la(i-c)*lalaatypelaatype类型的长度;类型的长度;
25、类型的长度;类型的长度;首址首址首址首址位移位移位移位移loc(bi,j)=loc(bi,j)=loc(bc1,c2)loc(bc1,c2)+(d2-c2+1)*(i-c1)+(j-c2)*lb(d2-c2+1)*(i-c1)+(j-c2)*lblbbtypelbbtype类类类类型的长度;型的长度;型的长度;型的长度;首址首址首址首址位移位移位移位移一维数组按照下标递增的顺序访问表中元素一维数组按照下标递增的顺序访问表中元素一维数组按照下标递增的顺序访问表中元素一维数组按照下标递增的顺序访问表中元素acacac+1ac+1adad二维数组按照先行后列的顺序访问表中元素二维数组按照先行后列的顺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 数据结构 优秀 课件
限制150内