《计算机二级数据结构与算法精选PPT.ppt》由会员分享,可在线阅读,更多相关《计算机二级数据结构与算法精选PPT.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关于计算机二级数据结构与算法第1页,讲稿共67张,创作于星期三2 21.基本数据结构与算法第2页,讲稿共67张,创作于星期三3 31.1算法1.1.1算法(algorithm)基本概念对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。它是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。第3页,讲稿共67张,创作于星期三4 4算法的基本特征l可行性可行性l确定性确定性l有穷性有穷性l拥有足够的情报拥有足够的情报 输入输入输入输入和和输出输出输出输出第4页,讲稿共67张,创作于星期三5 5算法的基本要素1、对数据对象
2、的运算和操作算术运算:加、减、乘、除等运算逻辑运算:“与”、“或”、“非”等运算关系运算:“大于”、“等于”等运算数据传输:赋值、输入、输出等运算第5页,讲稿共67张,创作于星期三6 6算法的基本要素2、算法的控制结构算法中各操作之间的执行顺序描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等一个算法一般可以用顺序、选择、循环顺序、选择、循环三种基本机构组合而成。第6页,讲稿共67张,创作于星期三7 7算法设计基本方法列举法归纳法递推递归(以简洁的形式设计和描述算法)减半递推技术回溯法第7页,讲稿共67张,创作于星期三8 81.1.2算法复杂度时间复杂度 是指执行算法所需要的计
3、算工作量。是指执行算法所需要的计算工作量。一般用算法在执行过程中所需要的基本运算的执行一般用算法在执行过程中所需要的基本运算的执行次数来度量算法的工作量。次数来度量算法的工作量。算法中基本运算执行次数和问题的规模有关。算法中基本运算执行次数和问题的规模有关。算算法的工作量法的工作量f f(n)(n)有时在固定规模下,基本运算执行次数还和具体输入有时在固定规模下,基本运算执行次数还和具体输入有关。有关。第8页,讲稿共67张,创作于星期三9 9l l 平均性态平均性态l l 最坏情况复杂性最坏情况复杂性X出现的概率算法在输入x时所执行的基本运算次数规模为n时,算法执行时所有可输入的集合第9页,讲稿
4、共67张,创作于星期三1010算法的空间复杂度 一般是指执行这个算法所需要的内存空间一般是指执行这个算法所需要的内存空间 一个算法所占用的存储空间包括算法程序所占的一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及某种空间、输入的初始数据所占的存储空间以及某种数据结构所需要的附加存储空间数据结构所需要的附加存储空间 一个上机执行的程序除了需要存储空间来寄存一个上机执行的程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为要一些对数据进行操作的工作单元和存储一些为实现
5、计算所需信息的辅助空间。实现计算所需信息的辅助空间。第10页,讲稿共67张,创作于星期三11111.2数据结构l数据结构的定义l数据的逻辑结构和存储结构l数据结构的图形表示l线性结构与非线性结构第11页,讲稿共67张,创作于星期三12121.2.1 数据结构研究的主要内容数据结构研究的主要内容当今计算机应用的特点:l所处理的数据量大且具有一定的关系;l对其操作不再是单纯的数值计算,而更多地是需要对其进行组织、管理和检索。第12页,讲稿共67张,创作于星期三1313应用举例学籍档案管理l假设用计算机管理学生档案,研究对象为:学生,常用操作查找、删除、修改、插入等l一个学籍档案管理系统应包含如下表
6、1-1所示的学生信息。第13页,讲稿共67张,创作于星期三1414第14页,讲稿共67张,创作于星期三1515特点:特点:l l每个学生的信息占据一行,所有学生的信息按学号每个学生的信息占据一行,所有学生的信息按学号顺序依次排列构成一张表格。顺序依次排列构成一张表格。l l表中每个学生的信息依据学号的顺序存在着一种前表中每个学生的信息依据学号的顺序存在着一种前后关系,这就是我们所说的线性结构。后关系,这就是我们所说的线性结构。l l对它的操作通常是插入某个学生的信息,删除某个学生对它的操作通常是插入某个学生的信息,删除某个学生的信息,更新某个学生的信息,按条件检索某个学生的的信息,更新某个学生
7、的信息,按条件检索某个学生的信息等等。信息等等。第15页,讲稿共67张,创作于星期三1616 数据结构是一门研究数据结构是一门研究数据数据组织组织、存存储储和和运算运算的一般方法的学科。的一般方法的学科。1.2.2 基本概念和术语数据结构主要研究和讨论以下三个方面的问题:1.数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。2.在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。3.对各种数据结构进行的运算。位置:位置:P6,重要。,重要。第16页,讲稿共67张,创作于星期三1717能输入到计算机中能输入到计算机中并能被计算机程序处理的并能被计算机程序处理的符号的集
8、合。符号的集合。整数整数(1,2)(1,2)、实数、实数(1.1,1.2)(1.1,1.2)字符串字符串(Beijing)(Beijing)、图形、声音。图形、声音。1.2.2基本概念和术语 数据结构是一门研究数据结构是一门研究数据数据组织组织、存存储储和和运算运算的一般方法的学科。的一般方法的学科。第17页,讲稿共67张,创作于星期三18181.2.2基本概念和术语计算机管理图书问题计算机管理图书问题 在图书馆里有各种卡片:有按书名编排的、在图书馆里有各种卡片:有按书名编排的、有按作者编排的、有按分类编排有按作者编排的、有按分类编排如何将查询图书的这些信息存入计算机中如何将查询图书的这些信息
9、存入计算机中既要考虑查询时间短,又要考虑节省空间既要考虑查询时间短,又要考虑节省空间 数据结构是一门研究数据结构是一门研究数据数据组织组织、存存储储和和运算运算的一般方法的学科。的一般方法的学科。第18页,讲稿共67张,创作于星期三1919最简单的办法之一是建立一张表,最简单的办法之一是建立一张表,每一本书的信息在表中占一行,如每一本书的信息在表中占一行,如 1.2.2基本概念和术语 数据结构是一门研究数据结构是一门研究数据数据组织组织、存存储储和和运算运算的一般方法的学科。的一般方法的学科。第19页,讲稿共67张,创作于星期三2020将各种逻辑结构的数据存放在将各种逻辑结构的数据存放在计算机
10、存储空间中。计算机存储空间中。目的不同,最佳的存储方方法就不同。目的不同,最佳的存储方方法就不同。数据元素在数据元素在计算机中的表示计算机中的表示 数据结构是一门研究数据结构是一门研究数据数据组织组织、存存储储和和运算运算的一般方法的学科。的一般方法的学科。1.2.2基本概念和术语第20页,讲稿共67张,创作于星期三2121对数据结构中的节点进行对数据结构中的节点进行操作处理操作处理(插入、删除、修改、查找、排序插入、删除、修改、查找、排序)1.2.2基本概念和术语 数据结构是一门研究数据结构是一门研究数据数据组织组织、存储存储和和运算运算的一般方法的学科。的一般方法的学科。第21页,讲稿共6
11、7张,创作于星期三2222数据元素数据元素(Data Element)(Data Element)现实世界中客观存在得一切个体或个体相关的操作现实世界中客观存在得一切个体或个体相关的操作都可以抽象为数据元素。都可以抽象为数据元素。如:四季的名称:春、夏、秋、冬由季节抽象如:四季的名称:春、夏、秋、冬由季节抽象而来,可以作为季节的数据元素。而来,可以作为季节的数据元素。同理,父亲、儿子、女儿可以作为家庭成员的数同理,父亲、儿子、女儿可以作为家庭成员的数据元素。据元素。简单的说,数据结构是指相互有关联的数据元素的简单的说,数据结构是指相互有关联的数据元素的集合。集合。第22页,讲稿共67张,创作于
12、星期三2323数据元素数据元素(Data Element)(Data Element)甚至客观存在的事件,如演出、借书、比赛等也可以抽象甚至客观存在的事件,如演出、借书、比赛等也可以抽象为数据元素。为数据元素。在具有在具有相同特征相同特征的数据元素集合中,各个数据元素之间存的数据元素集合中,各个数据元素之间存在某种关系,这种关系反映了该集合中的数据元素所固有的在某种关系,这种关系反映了该集合中的数据元素所固有的一种结构。在数据处理领域中,通常把数据元素之间的这种一种结构。在数据处理领域中,通常把数据元素之间的这种固有的关系简单地用前后件关系来描述。固有的关系简单地用前后件关系来描述。第23页,
13、讲稿共67张,创作于星期三2424数据的逻辑结构l表示数据元素的信息l表示数据元素之间的前后件关系。数据逻辑结构通常用二元组表示数据逻辑结构也可用图形表示第24页,讲稿共67张,创作于星期三2525数据逻辑结构可表示为:数据逻辑结构可表示为:B=(D,R)B B表示数据结构表示数据结构D D表示数据元素的集合表示数据元素的集合R R表示数据元素间前后件关系表示数据元素间前后件关系为反映前后件关系,通常用二元组为反映前后件关系,通常用二元组(a,b)来表示,来表示,它表示它表示a是是b的前件。的前件。第25页,讲稿共67张,创作于星期三2626B=(D,R)D=父亲,儿子,女儿R=(父亲,儿子)
14、,(父亲,女儿)B=(D,R)D=春,夏,秋,冬R=(春,夏),(夏,秋),(秋,冬)第26页,讲稿共67张,创作于星期三2727数据结构的图形表示春夏秋冬一年四季数据结构的图形表示ABCD第27页,讲稿共67张,创作于星期三2828数据的存储结构l数据的逻辑结构在计算机存储空间的表示。l各数据元素在计算机存储空间中的位置与逻辑关系不一定相同。l常用的存储结构有:顺序、链接、索引等。第28页,讲稿共67张,创作于星期三2929数据的存储结构.6427531.字节.6427531.冬夏秋春.6427531.儿子女儿4006父亲第29页,讲稿共67张,创作于星期三3030二级公共基础05年4月试题
15、(1)数据的存储结构是指A A)存储在外存中的数据)存储在外存中的数据B B)数据所占的存储空间量)数据所占的存储空间量C C)数据在计算机中的顺序存储方式)数据在计算机中的顺序存储方式D D)数据的逻辑结构在计算机中的表示)数据的逻辑结构在计算机中的表示第30页,讲稿共67张,创作于星期三3131线性结构与非线性结构l有且只有一个根结点(没有前件的结点)。l每一个结点最多只有一个前件,也最多只有一个后件。第31页,讲稿共67张,创作于星期三3232线性结构线性结构 A,B,C,,X,Y,Z学 生 成 绩 表86胡孝臣986110395刘忠赏9861107100张卓9861109成绩姓名学号线
16、性表线性表结点间是以线性关系联结结点间是以线性关系联结ABC第32页,讲稿共67张,创作于星期三3333非线性结构非线性结构 如果数据结构不满足线性结构的条件,则称如果数据结构不满足线性结构的条件,则称之为非之为非线性结构。线性结构。此外,在线线结构中插入或删除一个此外,在线线结构中插入或删除一个 结点,还结点,还应是线线结构,否则此结构非线线应是线线结构,否则此结构非线线ABCD第33页,讲稿共67张,创作于星期三3434树形结构树形结构全校学生档案管理的组织方式全校学生档案管理的组织方式计算机程序管理系统也是典型的树形结构计算机程序管理系统也是典型的树形结构第34页,讲稿共67张,创作于星
17、期三3535A AB BC CD DE EF FGGH H树形结构 结点间具有分层次的连接关系HBCDEFGA第35页,讲稿共67张,创作于星期三36361.3线性表1.3.1线性表的定义 线性表是线性表是n个元素的有限序列,它们之间的关系个元素的有限序列,它们之间的关系可以排成一个线性序列:可以排成一个线性序列:a1,a2,ai,an其中其中n称作表的长度,当称作表的长度,当n=0时,称作空表。时,称作空表。第36页,讲稿共67张,创作于星期三3737l l线性表的特点:线性表的特点:线性表的特点:线性表的特点:1.1.线性表中所有元素的性质相同。线性表中所有元素的性质相同。线性表中所有元素
18、的性质相同。线性表中所有元素的性质相同。2.2.除第一个和最后一个数据元素之外,其它数据元素有且除第一个和最后一个数据元素之外,其它数据元素有且除第一个和最后一个数据元素之外,其它数据元素有且除第一个和最后一个数据元素之外,其它数据元素有且仅有一个前件和一个后件。第一个数据元素无前件,仅有一个前件和一个后件。第一个数据元素无前件,仅有一个前件和一个后件。第一个数据元素无前件,仅有一个前件和一个后件。第一个数据元素无前件,最后一个数据元素无后件。最后一个数据元素无后件。最后一个数据元素无后件。最后一个数据元素无后件。3.3.数据元素在表中的位置只取决于它自身的序号。数据元素在表中的位置只取决于它
19、自身的序号。数据元素在表中的位置只取决于它自身的序号。数据元素在表中的位置只取决于它自身的序号。l l在线性表上常用的运算有:在线性表上常用的运算有:在线性表上常用的运算有:在线性表上常用的运算有:初始化、求长度、取元素、修改、初始化、求长度、取元素、修改、初始化、求长度、取元素、修改、初始化、求长度、取元素、修改、前插、删除、检索、排序。前插、删除、检索、排序。前插、删除、检索、排序。前插、删除、检索、排序。第37页,讲稿共67张,创作于星期三38381.3.2线性表的顺序存储结构l l线性表顺序存储结构的特点:线性表顺序存储结构的特点:线性表顺序存储结构的特点:线性表顺序存储结构的特点:1
20、 1、线性表所有元素所占的存储空间是连续的。、线性表所有元素所占的存储空间是连续的。、线性表所有元素所占的存储空间是连续的。、线性表所有元素所占的存储空间是连续的。2 2、线性表各数据元素在存储空间中是按逻辑顺序依、线性表各数据元素在存储空间中是按逻辑顺序依、线性表各数据元素在存储空间中是按逻辑顺序依、线性表各数据元素在存储空间中是按逻辑顺序依次存放的。次存放的。次存放的。次存放的。在计算机中存放线性表,采用顺序存储是一种简单方便的方法。第38页,讲稿共67张,创作于星期三3939元素元素a an n.元素元素a ai i.元素元素a a2 2元素元素a a1 1bADR(a1)+k存储地址存
21、储地址内存状态内存状态顺序存储结构示意图顺序存储结构示意图(顺序表顺序表):首地址首地址ADR(aADR(a1 1)每个元素所占用每个元素所占用的存储单元个数的存储单元个数ADR(a1)+(i-1)*kADR(a1)+(n-1)*kADR(ai)=ADR(a1)+(i-1)*k第39页,讲稿共67张,创作于星期三4040n-1线性表的插入和删除运算示意图线性表的插入和删除运算示意图ai-1.a2a1an ai+1ai x ai-1.a2 a1 ai ai+1 alength an ai+1 ai x删删除除运算运算插插入入运算运算第40页,讲稿共67张,创作于星期三4141若长度为若长度为n
22、n的线性表表示为:的线性表表示为:(a(a1 1,a,a2 2,a,ai i,a,an n)运算后表示运算后表示为:为:(a(a1 1,a,a2 2,a,ai i,a,an n),则满足以下关系:,则满足以下关系:l l插入新元素插入新元素b b后后ajaj1=j=i-1bj=iaj-1i+1=j=n+1长度增加为:n+1l l删除第删除第i i个元素后个元素后ajaj1=j=i-1aj+1i=j=n-1长度减少为:n-1第41页,讲稿共67张,创作于星期三42421.4栈和队列1.4.1栈和队列的定义栈和队列是两种特殊的线性表,它们是运算时要受是两种特殊的线性表,它们是运算时要受到某些限制的
23、线性表,故也称为到某些限制的线性表,故也称为限定性的数据结构。第42页,讲稿共67张,创作于星期三43431.4.1.11.4.1.1栈的定义栈的定义栈栈:限限定定只只能能在在表表的的一一端端进进行行插插入入和和删删除除的的特特殊殊的的线线性性表表,此此种种结结构构称称为为先先进后出进后出(FILO)(FILO)或或后进先出后进先出(LIFO)(LIFO)设栈设栈s=s=(a a1 1,a a2 2,.,a.,ai i,.,a an n),其中其中a a1 1是栈底元素,是栈底元素,a an n是栈顶元素。是栈顶元素。栈顶(栈顶(top)top):允许插入和删除的一端;:允许插入和删除的一端;
24、栈底(栈底(bottom):bottom):不允许插入和删除的一端。不允许插入和删除的一端。约定用指针约定用指针top始终指向栈顶的位置,始终指向栈顶的位置,用指针用指针bottom指向栈底。指向栈底。a1 a2 .ai进栈进栈出栈出栈topbottomn1第43页,讲稿共67张,创作于星期三44441.4.2 栈的顺序存储结构及其基本运算栈的顺序存储结构及其基本运算 a a2 2 a a1 1 a1 a2 top 用顺序存储结构表示的栈用顺序存储结构表示的栈。顺顺序序栈栈用用一一组组连连续续的的存存储储单单元元存存放放自自栈栈底底到到栈栈顶顶的的数数据据元元素素,一一般般用用一一维维数数组组
25、表表示示,设设置置一一个个简简单单变变量量top指指示示栈栈顶顶位位置置,称称为为栈栈顶顶指指针针,它它始始终终指指向向待待插插入入元元素素的的位位置。置。基本运算:压(进)栈:PUSH出栈:POP读栈顶元素第44页,讲稿共67张,创作于星期三4545进栈示例进栈示例 栈满:栈顶指针指向存储空间的最后一个位置第45页,讲稿共67张,创作于星期三4646退栈示例退栈示例第46页,讲稿共67张,创作于星期三47471.4.1.2 队列队列(Queue)Queue)的定义的定义定义:定义:一种特殊的线性结构,限定只能在表的一端进行插入,在表的另一端进行删除的线性表 。a1 ,a2 ,a3 ,a4 ,
26、an-1 ,an 队 列 示 意 图队头队尾队列只允许在队尾插入,在对头删除。队列只允许在队尾插入,在对头删除。队头指针:队头指针:front:指向排头元素的前一个位置:指向排头元素的前一个位置队尾指针:队尾指针:rear:指向队尾元素:指向队尾元素此种结构称为先进先出(先进先出(FIFO)或后进后出)或后进后出(LILO)。第47页,讲稿共67张,创作于星期三4848队列的主要运算队列的主要运算(1)插入一个新的队尾元素,称为进队;)插入一个新的队尾元素,称为进队;(2)删除队头元素,称为出队;)删除队头元素,称为出队;(3)读取队头元素;)读取队头元素;当有新元素入队时,尾指针加当有新元素
27、入队时,尾指针加1,当有元素出队时,头指针加当有元素出队时,头指针加1。故在非空队列中,故在非空队列中,头指针头指针始终指向始终指向队头元素前一个位置队头元素前一个位置,而而尾指针尾指针始终指向始终指向队尾元素的位置队尾元素的位置第48页,讲稿共67张,创作于星期三4949队列的进队和出队队列的进队和出队 n 进队时队尾指针先进一进队时队尾指针先进一进队时队尾指针先进一进队时队尾指针先进一 rear=rearrear=rear+1+1,再将新,再将新,再将新,再将新 元素按元素按元素按元素按 rear rear 指示位置加入。指示位置加入。指示位置加入。指示位置加入。n n 出队时队头指针先进
28、一出队时队头指针先进一出队时队头指针先进一出队时队头指针先进一 front=frontfront=front+1+1,再将,再将,再将,再将 下标为下标为下标为下标为 front front 的元素取出。的元素取出。的元素取出。的元素取出。n 队满时再进队将溢出出错;队空时再出队将队队满时再进队将溢出出错;队空时再出队将队队满时再进队将溢出出错;队空时再出队将队队满时再进队将溢出出错;队空时再出队将队 空处理。空处理。空处理。空处理。队满:队尾指针指向存储空间的最后一个位置第49页,讲稿共67张,创作于星期三5050定义:存储队列的线型空间被模拟为首尾相接的环定义:存储队列的线型空间被模拟为首
29、尾相接的环形空间处理。形空间处理。循环队列(循环队列(长度为长度为m)的的性质:)的的性质:l循环队列的初始状态循环队列的初始状态:front=rear=ml队头、队尾指针队头、队尾指针加加1时若结果等于时若结果等于m1置为置为1。循环队列(Circular Queue)第50页,讲稿共67张,创作于星期三5151Q(1:m)21mrearfront第51页,讲稿共67张,创作于星期三5252Q(1:6)rearfrontAECDBF第52页,讲稿共67张,创作于星期三5353l队空时:队空时:front=rear;l队满时:队满时:front=rear l由于由于 队满和对空的条件一样,无法
30、判断队满和对空的条件一样,无法判断循环队列的状态,所以增加了一个标志循环队列的状态,所以增加了一个标志s,s的定义如下:的定义如下:s1表示队列非空0表示队列空P19-20详细说明第53页,讲稿共67张,创作于星期三54541.5链表l l线性链表线性链表指针数据线性链表节点指针数据指针数据第54页,讲稿共67张,创作于星期三55551.5.1 线性表的链式存储结构线性表的链式存储结构 将将线线性性表表的的元元素素放放到到一一个个具具有有头头指指针针的的链链表表中中,链链表中每个结点包含数据域和指针域。表中每个结点包含数据域和指针域。数数据据域域存存放放数数据据,指指针针域域存存放放后后继继结
31、结点点的的地地址址,最最后后一一个个结结点点的的指指针针域域为为空空。逻逻辑辑上上相相邻邻的的数数据据元元素素在在内内存存中中的的物理存储空间不一定相邻。物理存储空间不一定相邻。第55页,讲稿共67张,创作于星期三5656上图的线性表为上图的线性表为ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG第56页,讲稿共67张,创作于星期三5757线性链表表示法线性链表表示法:0第57页,讲稿共67张,创作于星期三5858双向链表双向链表 在在每每个个结结点点中中设设置置两两个个指指针针,一一个个指指向向后后继继,一一个个指指向向前前驱驱。可可直直接接确确定定一一个个结结点点的的
32、前前驱驱和和后后继继结点。可提高效率。结点。可提高效率。datanextbefore第58页,讲稿共67张,创作于星期三5959链式存储结构的特点链式存储结构的特点 插入、删除灵活方便,不需要移动结点,只要改变结点插入、删除灵活方便,不需要移动结点,只要改变结点中指针域的值即可。中指针域的值即可。适合于线性表是动态变化的适合于线性表是动态变化的,不进行频繁查找操作、但经常进不进行频繁查找操作、但经常进行插入删除时使用。行插入删除时使用。链表的查找只能从头指针开始顺序查找。链表的查找只能从头指针开始顺序查找。第59页,讲稿共67张,创作于星期三6060babaxHH线性链表的插入运算线性链表的插
33、入运算S在在H所指向的结点之后插入新的结点所指向的结点之后插入新的结点1.5.2 线性链表的运算线性链表的运算第60页,讲稿共67张,创作于星期三6161baxHbaH线性链表的删除运算线性链表的删除运算S在在H所指向的结点之后删除新的结点所指向的结点之后删除新的结点1.5.2 线性链表的运算线性链表的运算baxHS第61页,讲稿共67张,创作于星期三6262栈的链接表示链式栈l链式栈无栈满问题,空间可扩链式栈无栈满问题,空间可扩充充l插入与删除仅在栈顶处执行插入与删除仅在栈顶处执行l链式栈的栈顶在链头链式栈的栈顶在链头0第62页,讲稿共67张,创作于星期三6363队列的链接表示 链式队列l队
34、头在链头,队尾在链尾。队头在链头,队尾在链尾。l链式队列在进队时无队满问题,链式队列在进队时无队满问题,但有队空问题。但有队空问题。l队空条件为队空条件为 front=NULL0第63页,讲稿共67张,创作于星期三64641.5.3 循环链表循环链表:首尾相接的链表。首尾相接的链表。将将最最后后一一个个结结点点的的空空指指针针改改为为指指向向头头结结点点,从从任任一一结结点点出出发发均可找到其它结点。均可找到其它结点。a a1 1a a2 2a an n0 0a a3 3L.带头结点的线性链表带头结点的线性链表a a1 1a a2 2a an na a3 3L.循环线性链表循环线性链表第64页
35、,讲稿共67张,创作于星期三6565元素n.元素i.元素2元素1存储内容缺点:缺点:1.作插入或删除操作时,需移动大量元素。作插入或删除操作时,需移动大量元素。2.长度变化较大时,需按最大空间分配。长度变化较大时,需按最大空间分配。3.表的容量难以扩充。表的容量难以扩充。优点:优点:1.结构简单,节省存储空间。结构简单,节省存储空间。2.可随机定位其中的元素。可随机定位其中的元素。线性表顺序存储线性表顺序存储第65页,讲稿共67张,创作于星期三66661536元素21400元素11346元素3 0元素41345h 线性表链式存储 1.缺点:比顺序存储结构的存储密度小缺点:比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成每个节点都由数据域和指针域组成)。定位时必须按顺序进行定位时必须按顺序进行2.优点:逻辑上相邻的节点物理上不必相邻。优点:逻辑上相邻的节点物理上不必相邻。插入、删除灵活插入、删除灵活 (不必移动节点,只要改变节点中的指针不必移动节点,只要改变节点中的指针)。链接存储结构特点:链接存储结构特点:第66页,讲稿共67张,创作于星期三感谢大家观看第67页,讲稿共67张,创作于星期三