【教学课件】第1章线性数据结构(一).ppt





《【教学课件】第1章线性数据结构(一).ppt》由会员分享,可在线阅读,更多相关《【教学课件】第1章线性数据结构(一).ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章章 线性数据结构(一)线性数据结构(一)l教材教材:1.1 数据结构概述数据结构概述l 1.2 线性表线性表l教学目标:教学目标:l 了解数据结构的有关概念了解数据结构的有关概念l 了解线性了解线性DS的概念、特点的概念、特点l 掌握线性表的逻辑结构、物理结掌握线性表的逻辑结构、物理结构以及操作构以及操作1学习要求学习要求l1.掌握以下掌握以下基本概念基本概念数据元素、数据元素、DS、逻辑结构、物理结构、逻辑结构、物理结构l2.DS的分类及特点、时间复杂度等的分类及特点、时间复杂度等l3.线性线性DS的常用存储结构的常用存储结构 顺序、链表、索引、散列存储结构顺序、链表、索引、散列存储
2、结构 单向、双向、循环链表等单向、双向、循环链表等l4.线性线性DS的有关算法的有关算法 增、删、改增、删、改21.1 数据结构概述数据结构概述l一、基本概念一、基本概念l1.数据(数据(Data)存储在计算机中、并被计算机处理的存储在计算机中、并被计算机处理的符号的集合符号的集合,是客观事物的符号表示。是客观事物的符号表示。l2.数据元素(数据元素(Element)组成数据的基本单位组成数据的基本单位 可由若干个数据项组成可由若干个数据项组成 数据集合中的个体数据集合中的个体,对应结点对应结点(节点节点)。3二二.数据结构数据结构l1.数据结构(数据结构(Data Structure)1)研
3、究数据及数据元素之间的关系研究数据及数据元素之间的关系.2)组成要素:组成要素:DS=数据的逻辑结构数据的逻辑结构+存储结构存储结构+数据的运算数据的运算 42.数据的逻辑结构数据的逻辑结构l1)描述数据间的逻辑关系,只是抽象描述数据间的逻辑关系,只是抽象地反映数据元素的结构,而不管它们地反映数据元素的结构,而不管它们在计算机中如何存放。在计算机中如何存放。l2)定义定义:l DS=(D,R)l 其中:其中:l D:数据元素的有限集合;:数据元素的有限集合;l R:数据元素之间关系的集合。:数据元素之间关系的集合。53.数据结构分类数据结构分类l l 线性表线性表堆栈堆栈队列队列串串数组数组树
4、树二叉树二叉树图图线性结构线性结构非线性结构非线性结构数据结构数据结构 DS64.数据的存储结构数据的存储结构l又称物理结构又称物理结构l是指数据结构在计算机中的表示是指数据结构在计算机中的表示(又称又称映象映象),即数据在计算机中的存放方式。即数据在计算机中的存放方式。7逻辑结构和物理结构的关系逻辑结构和物理结构的关系l1.逻辑结构逻辑结构 从逻辑关系上观察数据,独立于计算从逻辑关系上观察数据,独立于计算机;可以在理论上、形式上进行研究、机;可以在理论上、形式上进行研究、推理、运算等各种操作。推理、运算等各种操作。l2.存储结构存储结构 逻辑结构在计算机中的实现,依赖于逻辑结构在计算机中的实
5、现,依赖于计算机。计算机。l3.任何一个算法的设计取决于选定的任何一个算法的设计取决于选定的逻辑结构;而算法的最终实现依赖于逻辑结构;而算法的最终实现依赖于采用的存储结构。采用的存储结构。8数据存储结构分类数据存储结构分类l顺序存储结构顺序存储结构l链式存储结构链式存储结构l索引存储结构索引存储结构l散列存储结构散列存储结构 9(1)顺序存储结构顺序存储结构l 把数据元素按某种顺序存放在一块连续的把数据元素按某种顺序存放在一块连续的存储单元中。存储单元中。l 结点结构结点结构:l 特点特点:1)连续存放连续存放,逻辑上相邻逻辑上相邻,物理上也相邻。物理上也相邻。2)结构简单,易实现。结构简单,
6、易实现。3)插入、删除操作不便(需大量移动元素)插入、删除操作不便(需大量移动元素)d1 d2 dn数据域10(2)链式存储结构链式存储结构l 数据元素存放在任意存储单元中,可连续数据元素存放在任意存储单元中,可连续存放,也可以不连续存放,用指针实现链存放,也可以不连续存放,用指针实现链表间的联系。表间的联系。l 结点结构结点结构:l特点特点:1)插入、删除操作只要修改指针即可插入、删除操作只要修改指针即可2)结构较复杂,需要额外存储空间。结构较复杂,需要额外存储空间。d1.d2dn NULL数据域 指针域11(3)索引存储结构索引存储结构l存储两部分内容:存储两部分内容:数据元素序列和索引表
7、数据元素序列和索引表l索引表组成索引表组成:数据元素的某个数据项和该数据元素的某个数据项和该元素存储地址元素存储地址l 结点结构结点结构:l 序号:序号:1 2 3 4 5 6 7 l 数据项:数据项:l 索引号:索引号:l 特点:特点:非连续存放非连续存放 增增、删操作简单、删操作简单 检索速度快检索速度快 数据元素长度可不等数据元素长度可不等12 21 35 2 45 5 104 3 2 7 1 6 5 数据项数据项 索引顺序号索引顺序号12(4)散列存储结构散列存储结构l在数据元素与存储位置之间建立一种在数据元素与存储位置之间建立一种存储关系存储关系F,根据这种关系,根据这种关系F,已知
8、元,已知元素素E,就可以得到它的存储地址,即,就可以得到它的存储地址,即D=F(E)。)。l特点:特点:(1)数据元素间无内在联系数据元素间无内在联系(2)存储形式不定)存储形式不定l实例:哈希查找中的哈希表实例:哈希查找中的哈希表135.数据运算数据运算l(1)数据运算)数据运算 是指对存放在物理结构上的数据是指对存放在物理结构上的数据,按定按定义的逻辑结构进行的各种操作。义的逻辑结构进行的各种操作。l(2)每个数据结构都有一个运算的集)每个数据结构都有一个运算的集合合l(3)常见操作)常见操作检索、插入、删除、修改检索、插入、删除、修改14三、算法与算法分析三、算法与算法分析l 1.算法(
9、算法(Algorithm)是对特定问题求解步骤的一种描述;是对特定问题求解步骤的一种描述;l2.算法和运算的关系算法和运算的关系运算依赖于逻辑结构运算依赖于逻辑结构算法依赖于存储结构算法依赖于存储结构l3.研究算法追求的目标研究算法追求的目标 时间和空间的适当和谐时间和空间的适当和谐154.算法的特性算法的特性l有穷性有穷性 一个算法必须总是在执行有穷步一个算法必须总是在执行有穷步后结束,且每一步都可在有穷时间内完成;后结束,且每一步都可在有穷时间内完成;l确定性确定性 算法中的每一个指令必须有明确算法中的每一个指令必须有明确的含义,不能有二义性;的含义,不能有二义性;l可行性可行性 算法中描
10、述的操作都是可通过已算法中描述的操作都是可通过已经实现的基本运算、执行有限次实现的;经实现的基本运算、执行有限次实现的;l输入输入 一个算法应有一个算法应有0个或多个输入;个或多个输入;l输出输出 一个算法应有一个算法应有1个或多个输出。个或多个输出。165.算法的描述方式算法的描述方式l(1)自然语言自然语言l(2)流程图流程图 用特定图形符号进行算法描述用特定图形符号进行算法描述 l(3)伪语言伪语言 包括程序设计语言的三大基本结构及自包括程序设计语言的三大基本结构及自然语言的一种语言然语言的一种语言l(4)类语言类语言 类似高级语言的语言,例如类类似高级语言的语言,例如类PASCAL、类
11、类C语言。语言。176.算法的评价标准算法的评价标准l(1)时间复杂度时间复杂度 指在计算机上运行该算法所花费的时间。指在计算机上运行该算法所花费的时间。用用“O(数量级)(数量级)”来表示,称为来表示,称为“阶阶”。常见的时间复杂度:常见的时间复杂度:O(1)O(logn)O(n)O(n2)常数阶常数阶 对数阶对数阶 线性阶线性阶 平平方阶方阶l(2)空间复杂度空间复杂度 指算法在计算机上运行所占用的存储指算法在计算机上运行所占用的存储空间。度量同时间复杂度。空间。度量同时间复杂度。18时间复杂度举例时间复杂度举例l(a)O(1)X:=X+1;l(b)O(n)FOR I:=1 TO n DO
12、 X:=X+1;l(c)O(n2)FOR I:=1 TO n DO FOR J:=1 TO n DO X:=X+1;191.2 线性表线性表l是指数据元素之间的关系为一一对应是指数据元素之间的关系为一一对应的线性关系的数据结构。的线性关系的数据结构。l例如,一星期七天的英文缩写表示:例如,一星期七天的英文缩写表示:l (Sun,Mon,The,wed,Thu,Fri,Sat)是一个线性表,其中的元)是一个线性表,其中的元素是字符串,表的长度为素是字符串,表的长度为7。l 20(一)线性表的逻辑结构(一)线性表的逻辑结构l定义:定义:线性表是线性表是n(n 0)个元素)个元素a1,a2,an 的
13、有限序列的有限序列;表中每个数表中每个数据元素据元素,除了第除了第1个和最后个和最后1个外个外,有且有且仅有一个前趋元素和后继元素。仅有一个前趋元素和后继元素。21l形式定义:形式定义:l 含有含有n个数据元素的线性表是一种数据结个数据元素的线性表是一种数据结构,表示为:构,表示为:l Linear_list=(D,R)l 其中其中:D=ai|ai D0,i=1,2,3,n,n 0l R=N,N=|ai-1,ai D0 ,i=1,nl D是数据元素的有限集合是数据元素的有限集合,R是是D上逻辑关上逻辑关系的有限集合。关系系的有限集合。关系N是一个有序偶对的集是一个有序偶对的集合。合。22相互关
14、系描述相互关系描述l1)L的长度为的长度为n(n 0),),n=0时是空表;时是空表;l2)除了第)除了第1个和最后一个元素外个和最后一个元素外,每个元素每个元素有唯一的前趋和后继;有唯一的前趋和后继;l3)线性表中各元素间存在着线性关系;)线性表中各元素间存在着线性关系;l4)均匀性;各元素数据类型必须相同;)均匀性;各元素数据类型必须相同;l5)有序性;各元素是有序的,不可交换次)有序性;各元素是有序的,不可交换次序。序。23线性表的基本操作线性表的基本操作lSetnull(L)置空表置空表lLength(L)求表长度求表长度,即表中元素个数即表中元素个数lGet(L,i)取表中第取表中第
15、i个元素(个元素(1 i n)lPrior(L,i)取取i的前趋元素的前趋元素lNext(L,i)取取i的后继元素的后继元素lLocate(L,x)返回指定元素在表中的位置返回指定元素在表中的位置lInsert(L,i,x)插入元素插入元素lDelete(L,x)删除元素删除元素lEmpty(L)判别表是否为空判别表是否为空24(二)线性表的顺序存储结构(二)线性表的顺序存储结构l1.顺序存储结构顺序存储结构表中元素顺序存入连续的存储单元中。表中元素顺序存入连续的存储单元中。l2.顺序表顺序表采用顺序结构的线性表。采用顺序结构的线性表。l3.顺序表的存储特点顺序表的存储特点由起始位置计算表中任
16、一元素的地址由起始位置计算表中任一元素的地址l LOC(ai)=LOC(a1)+C*(i-1)1 i n C:元素占用存储单元的长度元素占用存储单元的长度25l4.C语言实现语言实现 采用一维数组采用一维数组l#define MAXLENGTH 100l int list MAXLENGTH;l int last=-1;/*表中最后一个元素的序号表中最后一个元素的序号,-1空表空表*/26线性表元素存储示意图线性表元素存储示意图l a1a2.ai.元素序号元素序号 内存状态内存状态 存储地址存储地址12.i.LOC(a1)LOC(a1)+C.LOC(a1)+C*(i-1).27算法算法1-1
17、插入元素算法插入元素算法l算法步骤算法步骤:l step1 将第将第n至第至第i个元素后移一个存个元素后移一个存储位置储位置;l step2 将将x插入到插入到ai-1之后之后;l step3 表的长度加表的长度加1。l 28算法算法1-1 插入算法插入算法linsert(int i,int x)/*last为全局变量为全局变量*/l int k;l if(last+1=MAXLENGTH)l printf(“线性表已满!线性表已满!n”);exit(-1);l if(ilast+1)l printf(“插入位置错误插入位置错误!n”);exit(-2);l else 29 l for(k=l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 线性 数据结构

限制150内