版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章线性表线性表顺序表链表顺序表与链表的比较线性表定义:
n(0)个数据元素的有限序列,记作(a1,…ai-1,ai,ai+1,…,an)
其中,ai
是表中数据元素,n是表长度。特点:同一线性表中元素具有相同特性。相邻数据元素之间存在序偶关系。除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。
抽象数据类型线性表的定义
ADTList{数据对象:D={ai|ai∈Elemset,i=1,2…,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}基本操作:
(1)存取(2)插入(3)删除 (4)查找(5)合并(6)分解(7)排序(8)求线性表的长度算法2.1
算法2.2
顺序表定义:将线性表中的元素相继存放在一个连续的存储空间中。
存储结构:数组。特点:线性表的顺序存储方式。存取方式:顺序存取顺序存储结构示意图458990674078
012345顺序表的存储方式:LOC(ai+1)=LOC(ai)+(i-1)*lLOC(ai)=LOC(a1)+(i-1)*l
a1
a2
…ai………an12…i………n
aa+l…a+(i-1)*l………a+(n-1)*l
idletypedefintElemType;intA,B,*P;与ElemTypeA,B,*P;等价typedefcharElemType;charx,y,*P;与ElemTypex,y,*P;等价typedefstruct{ longnum;//学生号 floatscore;//成绩}ElemType;//定义了一个新类型,类型名ElemTypeElemTypestudent1,student2,*p;顺序表(SeqList)的类型定义#defineList_INIT_SIZE100//线性表存储空间的初始分配量。#defineLISTINCREMENT10//线性表存储空间的分配增量typedefstruct{ElemType*elem;//分配空间基址intLenth;//当前长度intListsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}Sqlist;顺序表基本运算初始化
插入运算---在第I(1<=I<=n+1)个元素之前插入一个新的数据元素x。使:长度为n的线性表变为长度为n+1的线性表(a1,a2,…,ai-1,ai,…,an)
(a1,a2,…,ai-1,x,ai,…,an)插入25345716480963
0123456750插入x2534575016480963
0123456750i插入算法的思想:若i=n+1,则将x插入到表尾;若表长度n<0或插入位置不适当,则输出错误信息,并返回-1;当1<=i<=n时,则从表尾开始到i个依次向后移动一个位置(共需移动n-i+1个数据元素。最后将x存入v[i]中,表长n增1插入成功,函数返回值为0。StatusListInsert_Sq(SqList&L,inti,ElemTypee){ //在顺序线性表L中第i个位置之前插入新的元素e. //i的合法值为1≤i≤ListLenth_sq(L)+1 if(i<1||i>L.lenth+1)retureERROR;//i值不合法 if(L.lenth>=L.Listsize){//当前存储空间已满,增加分配 newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase)exit(OVERLOW);//存储分配失败。 L.elem=newbase;//新基址 L.listsize+=LISTINCREMENT; }//增加存储容量 q=&(L.elem[i-1]);//q为插入位置 for(p=&(L.elem[L.lenth-1];p>=q;--p)*(p+1)=*p; //插入位置及至后的元素右移 *q=e;//插入e ++L.lenth;//表长增1 returnOK;}//ListInsert_sq按等概率考虑:可能的插入位置为i=1,2,……n,n+1共n+1个,则pi=1/(n+1)所以顺序表插入算法平均约需移动一半结点。时间复杂度为:T(n)=O(n)(2)删浪除算蹄法--尖-将线娘性表路的第I(1<津=I遵<=醋n)个结捏点删里除,骡使:虎长度艇为n的线宴性表晶变为姻长度盈为n-屯1的线拉性表势。(a1,a2,…韵,ai-冲1,ai,ai+涂1,…猎,an)(a1,a2,…乐,ai-吵1,ai+渐1,…侨,an)删除25电3脱4新57端50搁16睛4芝8适09听6316删除x25窑3惯4辱57酷50圾4桑8区09饶630稻1好2指3筒4甩5远6粮7删除掩算法扶的思衡想:若i=订n,只需删主除终筝端结寇点,凝不用舅移动宽结点补;若表启长度n<贸=0或删刚除位合置不慕适当,则项输出根错误揭信息唱,并浸返回-1;当1<技=i巧<n时,玩则将暗表中姐结点ai+殃1,ai+皱2,…很,an依次辆向前召移动竞一个领位置记(共虎需移拢动n-机I个数季据元智素。最后衡将表刃长n减1,删闸除成绩功,铜函数驳返回送值为0。St誉at弯usLi滋st洲De瞧le势te丢_S顾q(调Sq顽Li穷st&L,紧in常ti,枝El巡寿em衔Ty描pe&拣e)短{//在顺陕序线度性表随中删东除第i个元蛋素,晒并用e返回垫其值//作i的合脾法值绵为1≤态i≤胶Li甘st很Le纳nt筐h_枯Sq地(L抖)if沾((楼i<1蓄)帐||找(山i>L.箱le奏nt拼h))昆re历tu嗽rn捆ER蒙RO燃R;头/粪/i值为咏不合盈法P=稀&(贝L.臣el浇em伪[i劳-1慌])掩;隆/慨/统p为被泳删除粥元素伙的位步置e=蓝*p汇;巾/涌/被删艰除元温素的柴值赋晌给eq=淋L.传el恶em棋+L帐.l掉en事th皱-1繁;仗/枯/标尾难元素熊位置fo卖r(借++拥p;尤p<历=q售;然++杯p)*(恐p-灵1)拔=*杰p;疮/丧/被删灵除之厉后的鲜元素篮左移--L.社le捆nt逢h;践//表长巨度减1re凝tu闸rn窝O圆K;}/垮/Li阶st顽De泰le迫te-S尚q删除缴算法酱分析编:上述碧算法fo销r循环屯语句棋的执唯行次尘数为n-梨i;若i=如1,最坏亮:O(插n)若i=味n,无需岛用移锤动结惨点,饰直接迅删除填即可业。(广最好O(沸1))移动歌结点厅的平邀均次敞数:按等束概率楚考虑护:可能宰的删堤除位年置为I=慰1,抵2,摧……纳n共n个,申则pi倡=1隙/n所以顺序锋表插滔入算决法平士均约傲需移道动一探半结伐点。小结怠:顺序直表插源入、什删除拥算法亩平均矩约需施移动能一半拔结点怎,当n很大他时,妈算法抽的效稿率较冤低。时间叨复杂恋度为芽:T(悟n)蒙=O(猫n)按值富查找:找x在表离中的缓位置施,若阶查找泳成功肺,返臣回表测项的辟位置结,否刘则返跃回-1in椒tLo榴ca眨te体El列em胡_S吉q(贱Sq秀li伴stL,逐El裙em瓶Ty掏pee,革s疯ta穷tu渗s灭(*co畅ma授re叙)(懒El戒em外Ty腾pe泽,E值le证mT惨yp西e))狸{//在顺气序线聪性表L中查箱找第1个与e满足co属mp琴ar欺e(哑)的元飘素的模位序//若找眨到,扶则返孝回其阁在L中的印为序姨,否化则返俗回0i=瓣1;忘/敌/i的初马值为捏第1个元宿素的页位序p=L.定el暗em;却//细p的初苹值为解第个任元素随的存仪储位屋置wh稳il恩e(派i<=L.涌le棍nt遍h&&裙!摄(*兆co王mp涨ar瞧e)朱(*炎p+宋+,般e镰))事++狡i;if品(都i<拜=L.茄le软nt欢h)镜r某et扒ur景n寸i;el劲se逆re前tu朴rn何0愉;}/解/Lo吐ca延te姓El嫁em沉_S劣q顺序疫表的父合并vo储idMe教rg蛙eL雪is蜡t_迅Sq捆(S达qL忙is贪tLa弃,S制qL隙is佣tLb翠,S彻qL虏is巡寿t&Lc){//已知胶顺序输线性认表La和Lb的元疮素按倘值非扬递减提排列//归并La和Lb得到酬新的蔑顺序胞线性赏表Lc,Lc的也芬按值谁非递茄减排株列pa汪=La柴.e蹦le困m;芽pb=Lb表.e税le枣m;lc厌.l侧is股ts义iz登e=Lc填.l殊en本th=La限.l择en补th吴+L升b.脑le是nt永h;pc币=Lc痕.e倍le志m=(El顶em症Ty榨pe*)ma边ll质oc酸(L饮c.抵Li宗st奔si李ze*si兆ze凡of持(E种le眯mT锯yp优e))数;if国(!束Lc闭.e每le吵m)ex者it予(O标VE阳RF椅LO讯W);pa陵_l残as婆t=L擦a.显el迈em亮+L坝a.茂le占nt团h-来1;pb静_l灯as筐t=L能b.密el学em则+L江b.耻le绝nt沿h-狂1;wh婆il
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《先秦文论范畴生成土壤和来源的考察》
- 2024年聊城考客运资格证
- 2024年银川客运资格证应用能力考试答案
- 2024年广州客运从业资格证模拟考试题库下载电子版
- 2024年太原客运车从业资格证考试内容是什么
- 2024年河北客运车从业资格证考试内容
- 2023届新高考化学选考一轮总复习训练-阶段过关检测(四) 化学反应原理
- 2023届新高考化学选考一轮总复习学案-热点19 常见气体制备装置的研究
- 《第1课 从百家争鸣到独尊儒术》(同步训练)高中历史必修3-北师大版-2024-2025学年
- 2024年大客户采购协议文本
- 雅鲁藏布江大拐弯巨型水电站规划方案
- 广西基本医疗保险门诊特殊慢性病申报表
- 城市经济学习题与答案
- 国开成本会计第14章综合练习试题及答案
- 幼儿园大班科学:《树叶为什么会变黄》课件
- 1到50带圈数字直接复制
- 铁路工程施工组织设计(施工方案)编制分类
- 幼儿园中班数学《有趣的图形》课件
- 《规划每一天》教案2021
- 草莓创意主题实用框架模板ppt
- 山大口腔颌面外科学课件第5章 口腔种植外科-1概论、口腔种植的生物学基础
评论
0/150
提交评论