数据结构线性表顺序表.pptx
《数据结构线性表顺序表.pptx》由会员分享,可在线阅读,更多相关《数据结构线性表顺序表.pptx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、线性结构四大特点第一个元素无直接前驱第一个元素无直接前驱最后一个元素无直接后继最后一个元素无直接后继除第一个元素外,其他每个数据元素除第一个元素外,其他每个数据元素都有唯一一个直接前驱都有唯一一个直接前驱除最后一个元素外,其他每个数据元除最后一个元素外,其他每个数据元素都有唯一一个直接后面素都有唯一一个直接后面第1页/共48页线性表定义记法特点结构基本术语空表、表长直接前驱、直接后继位序最基本、最常用的线性结构。若最基本、最常用的线性结构。若n(nn(n0)个数个数据特性相同的数据元素组成的有限序列。据特性相同的数据元素组成的有限序列。(a1,a2,ai-1,ai,ai+1,an)1.同一线性
2、表中的数据元素必须具有相同特性2.具有线性结构的四大特性3.数据元素之间存在序偶关系逻辑结构(1对1)、物理结构(顺序存储和链式存储)第2页/共48页线性表的抽象数据类型数据对象数据关系操作集初始化、销毁、查找、插入、删除、求前驱(后继)、遍历线性表中的数据元素具有相同特性线性表中的数据元素具有相同特性相邻数据元素之间存在序偶关系相邻数据元素之间存在序偶关系线性表的基本操作声明线性表的基本操作声明仅是模型定义,不涉及模型实现,参数不必考虑具仅是模型定义,不涉及模型实现,参数不必考虑具体数据类型,实际应用中,具体问题具体分析。体数据类型,实际应用中,具体问题具体分析。第3页/共48页顺序表定义特
3、点C描述基本形态基本操作实现用一组地址连续地址连续的存储单元依次存放依次存放线性表中的数据元素。采用这种存储结构的线性表叫做顺序表顺序表。a1 a2 ai-1 ai an基地址基地址1.数据元素在“逻辑逻辑关系上的相邻相邻”用“物理地址相邻物理地址相邻”来表示。2.顺序表中任一元素都可“随机存取随机存取”。第4页/共48页typedef struct SqList;/俗称 顺序表#define MAXSIZE 100 /线性表存储空间的分配量,即数组长度ElemType elemMAXSIZE;int length;/当前长度顺序表的C描述第5页/共48页顺序表空:条件 L.length=0
4、不允许删除操作顺序表满:条件 L.length=MAXSIZE 不允许插入操作不空也不满:可以插入,删除操作顺序表的基本形态第6页/共48页顺序表-基本算法根据顺序表的实现形式,表长根据顺序表的实现形式,表长length是类型定义是类型定义的属性,可以实现求表长、初始化、取值、判空的属性,可以实现求表长、初始化、取值、判空等操作,时间复杂度均为等操作,时间复杂度均为O(1)。而遍历算法、查找表中元素的存在、插入、删除而遍历算法、查找表中元素的存在、插入、删除等操作,时间复杂度均为等操作,时间复杂度均为O(n)。第7页/共48页(1)初始化空表时间复杂为:O(1)顺序表-基本算法L.length
5、=0;第8页/共48页(2)判空时间复杂为:O(1)顺序表-基本算法if(L.length=0)return OK;else return ERROR;第9页/共48页(3)求表长时间复杂为:O(1)顺序表-基本算法return L.length;第10页/共48页(4)取元素(取第i个元素e)时间复杂为:O(1)顺序表-基本算法e=L.elemi-1;i合法if(i=1&i=L.length)e=L.elemi-1;return OK;else return ERROR;第11页/共48页顺序表-基本算法(5)遍历for(i=1;i=L.length;i+)visit(L.elemi-1);
6、时间复杂为:O(L.length)第12页/共48页顺序表-基本算法(6)查找搜索顺序表中是否存在指定的数据元素。存在,查找成功;否则,查找失败。第13页/共48页例如:顺序表23 75 41 38 54 62 17L.elem0L.length-1e=38i 1 2 3 4 1 850可见,基本操作是:将顺序表中的元素逐个和给定值 e 相比较。第14页/共48页算法的算法的时间复杂度时间复杂度为:为:O(L.length)int LocateElem(SqList L,Elemtype e)for(i=1;i=L.length;i+)if(e=L.elemi-1)return i;retur
7、n 0;第15页/共48页顺序表-基本算法(7)插入在顺序表中插入指定的数据元素,插入成功,表长增1。第16页/共48页线性表操作 ListInsert(&L,i,e)的实现:首先分析首先分析:插入元素时,线性表的逻辑结构逻辑结构发生什么变化发生什么变化?第17页/共48页(a1,ai-1,ai,an)改变为 (a1,ai-1,e,ai,an)a1 a2 ai-1 ai ana1 a2 ai-1 ai ean,表的长度增加第18页/共48页必备条件:表存在且不满i值的合法性检查:1L.length+1将第i个到最后1个元素依次后移一个位置;在i个位置插入元素;表长增加1。分析分析:第19页/共
8、48页21 18 30 75 42 56 8721 18 30 75例如:ListInsert_Sq(L,5,66)L.length-1087564266第20页/共48页O(L.length)算法的算法的时间复杂度时间复杂度为:为:Status ListInsert(SqList&L,int i,ElemType e)if(i=1&i=i;j-)/元素后移L.elemj=L.elemj-1;L.elemi-1=e;/插入e L.length+;/表长增1 return OK;/插入成功 elsereturn ERROR;第21页/共48页插入算法时间复杂度分析:插入算法时间复杂度分析:考虑移
9、动元素的平均情况考虑移动元素的平均情况插入位置需要移动的结点次数1n2n-1n1n+10平均次数:(1+2+n-1+n)/(n+1)=n/2T(n)=O(n)第22页/共48页顺序表-基本算法(8)删除在顺序表中删除指定位置的数据元素,删除成功,表长减1。第23页/共48页线性表操作 ListDelete(&L,i,&e)的实现:首先分析:删除元素时,线性表的逻辑结构发生什么变化?第24页/共48页(a1,ai-1,ai,ai+1,an)改变为 (a1,ai-1,ai+1,an)ai+1 an,表的长度减少a1 a2 ai-1 ai ai+1 ana1 a2 ai-1 第25页/共48页必备条
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性 顺序
限制150内