版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构
第2章线性表总结
表依序表单项钱表循环铳表双向塔表双向砧环缸表
结构模typcdcfstruct(structINodeStructCirNodcstructDulNodc同双向链裳
里ElcmTypc一几Q〃存铭空({(
I
间的基址intdata;〃数据域intdata;〃数据域intdata;
Intlength:〃当前长度structLNode.next:〃指计structCirNodeanext;〃指structOulNode•prior;
int123a;〃当前分•E的存城封城structDuINndp•npxt;
储容盘););};
}SqUst;typedefLNode♦LinkList;typedefCirNode♦ClrUnkUst;typedefDulhode
♦DulUnkUst;
初始化Statuslnitlist_Sq(Sqlist&l|//StatusInitList.linkfUnkList&L)StatuslnitList_Cir(CirtinkListStatusSu)tuA批注(n2):t>'pedefmtStatus:
构造一个空质雄性表I〃构造一个短的头结点
(Init)&l)〃构造•个空的头结由.lnitLi5t_Dul(0ullinklist&l)lnitl.istDuKDulLinkI.istAL)
{//切法2.3{(〃构造一个空的头站点〃构造一个空的久结也
L.elem=(ElemTypeLa(UnkList)malloc(slzeof(LNode)({
•)m9lloc(USTJNIT_SIZE*sizeof();L«(CirLinkList)malloc(sizeof(CirL=(Du)Linkli};t)rHnoc(si
ElcrrType)));i«H)Node));L=(DulUnklist)mall<x:(sizeof(xcof<Du!Sodc));
if(IL.deni|//fffi8分配失败returnERROR;叫I)DulNode));if(!U
exitlOVERFLOW),L->next=NULL;returnERROR:if(!L)--------return一EHRClK:一।批法口&OVERFLOW-2
L」ength=0;〃空衣长度为0returnOK;L->next-UreturnERROR;L->next=L:
Llistsize=UST_INIT_SIZE;)returnOK;L->next=L;l.->priorM.->iw-xt:
〃初坨存钻客吊}L->pr»or=:NUU.;returnOK;
returnOK:returnOK;)..--l
\fr4l:。加fineOK1
}//lnitUst_Sq}
插入元StatusLi$tlrueft_Sq(SqListStatusUstln$er_Unk(UnkU$tStatusStatus同双向铉表
素&L,inti.EfemTypee)〃在顺序注Ulntl,lnte)〃在i处插入兀素LS8tln8er_Clr(ClrLlnkLUlLidtlnscr-lXil(IXilLinkLfst
性表L中第1个位巴之前插入新e.算法£Linti.inte>〃在i处插入元L.intUintA)〃在i处猫入
的元轴(东明算法7元素明算法T
W算法2.4intj=l;1i
int•p/q,*newbase;LinkListp,q;intj=l:intj=l:
T
if(kl||i>Llength*l)q・l:CiiLinkllscP,Q;OjlUnklistp.q;跄[rS]:i的frzJ.lTll<=i<=LnlLenj:lh_Sq|Lbl
returnERROR;〃itf(不合法|i>(listLength_link(Lq=l;<Fl;
)*D)ifCiOlliXUstl-cnRth^iif(i<l||i>(ListLength,
if(L.length>=L.li$tSize)returnERROR;r(L)M»Dul<L)^l»
{//当的存偌空间己returnERROR;returnERROR;
满,烟加分配(«hile(j<iUq)
nev/t»se=(ElemTypeq=q->next;
B)realloc(Lelem,(L.listsize*LISTIq^q->rw»xt;q-q->n«xt;
NCREMENT)•山eof(ElcmTypc));)ji;
if(lncwbinc)〃存储分M失p=(LinkU$t)malloc(sUeof(L)1
败Node));p=(CirLinklist)iialloc(8lp=(lXjlLlnkL($t)fMlloc(
exit(OVERFLOW);p->data»e;wofXCirMdo));sizeof((ki)N»ie));
Lelem=newbase://tffUiltp->next=q->next;p->data-c;p-><Utavc;
L.li$t$i2e*=USTJNCREMENq->next=p;p->next-q->next:p->nexfq->next;
T;〃场加存储容litreturnOK;q->ne*l=p:p->prior=q:
))returnOK:q->nexx->prlor=p:
q-Lelem*i-iy/q为插入位)q->iwxtT»;
return(K;
for{p=L.elem+L.length-l;p>1
=q;--p)〃插入位置及以后元
索右移
*(P*l)=MP;
*q=c;〃珞入e
**Llength;〃表长第1
returnOK;
)
头插入无SutuslitsPlrs<_Link(Lin<LidlStatusStatus同
法AL.linklist4p)〃头插入.算法InsFirst.CirCCirLinkListJnsFirst_[)u](()u]linkli8t
-10ii..CirLinkl.istIp)〃头插人.n.kill.inkl.i;tip)
1算法TO(
j>->nexl=L->ne*t:Ip->nexl=t->bext;
L->next=p;p->nen=L->neit:p->prior=l:
returnOK;!.->n^xt->priar-p;
)return%L-〉gxtT;
)return(K;)
区插入无Status1fislastLink(Linkl.i%tStatusStatusStatus
法Aq.LinkList&p)入法InsLast.CirCCirLinkListInsl^iict.Dul()ulLinkl.istInsLastJkil(DulLinkList
1tq.CirLirAListftp)//尾插入&q,Du!LlnkUHftp)〃尾茹入liQ.DulLirALisltp)〃尾插入
q->next=p;法法法
q-p;l(1
p->next-M.lL;q->next-p:q-〉nextp;q->next-p;
returnOK;q=i>:p->prit>r=q:l>-'prior-:
)p->ne«=L:QFP:Q=P:
returnOK:p->nc«xx=NVlL;p->neit=l;
)return(K;returnOK;
1)
删除相StatusListDelete.SqlSqlistStatus!.islDelctc_Link(l.nkl.istStatusStatus何双向短表
应字号i.ElcmTypc&。)〃在顺序Lintirint除另i卜元素.ListDeletcCir(CirLinkListListDelcteDJI(DulLinkList
的祜点线性表L中剂除第i个元案,并并用uig回,算法・9Linli.int除第1个元Lintijnt除第i个元
用e返回其值{素.并用。返回.律法-9K.并用5s目,算法可
W算法2.SintjT;{(
•nt•p/q;if(i<l||i>ListlenKtbLink(intj-1;intj-1;
lf(kl||l>Llength)D)ir(i<l||i>Lisll.eni:th_CiriJListlxnKth-L敷注[n61:i的合在KlA,l<=K=LBtLcnRth$all>
returnERROR;//I值returnERROR:(L»ink<D)
不合法returnERROR;returnERROR:
p-&(Lelem[i-l]W/p为祓(»hiU(j<i)vhi
剂陈元索的位置L-L->n»oxt;((
e=*p;ji:L=L->r>cxt;L=L->nrxl:
q=Lelem*Llength-l;//表)Ji:J*:
足的位置LinkListp;)1
for(**p;p<-q34p|//被刑p*-L->rx»xt;Cirl.inkl.istp;DulLinkListp.q;
除元素之后的元索左移c-p->da皿p*L->next;p-L->nwt;
,(p-l)=*p;L->nc*l=p->ncxt:e=p->data;q=L->prior:
-Llength;free(p>:L->next=p->next:e=L->deta:
returnOK;return璐:fr«e(p);
))returnOK;p->prior-q:
)rree(L):
return«;
]
求去的intLHtLength_Sq(SqListL)〃返intLlslU«riKlh_Link(LinkLidtintintint
长度阿u,数抠元点个数得到我的K位Ustlength.Cir(CirlinkLlsclistLength_Dil(DulLinklistListLcngth(kiKDulLinkUst
1D”却到表的长度D”知外表的K度D”为列表的K度
returnI.length;inti-0;1(1
)LinkListp:intiR:in<i=0;inti=O:
p=L->next:Ciitinkllscp:DulLinkListp:(XilLinklistp;
ihiloCp)p=l->next:p=l->nen;p=L->next:
(whilc(p!-L)vhilc(p)*hilc(p!-L)
ifi(1
p=p->nexl:IfI”:If
)p=p->next:W〉nex〔:
returni;)1)
)revurn1:returni:returni:
)I)
判断是StatusUstEmpty_Sq<Sqli$tI)//Statu工l.i£tliipty_l.ink(Li-)kl.i£tStAtUfiStatusSt&M
否为空判断1表是否为空表0〃判断L表龙否为空为Listljipty_Cir(CirLinkl.i5tDListEnpty[XJI(IXilLinkListL>l.iKtl{nptyIhil(Du1LinkListL)
表(1〃判断l.表是否为空之〃兴版L衣是再为空表〃判断1.表是古为在位
if(Llength»«O)if(L->next==NllLl){([
returnTRUE;returnGK;if(L>ncxt-1.)if(L>n<xt-!AM.>prioif(L->nexl-li4l.prior"投注[c7):tl*fgeTRUE1
I____________________
elsereturnERfWR;returnOK:r-M.ll)咻)
returnFALSE;)ElUEHRftriR;roUimW;21UEOK;MJcriiicFALSE0
))return(XRCR;returnhHWiR;
I)
得到序StatusGetElem_Sq(SqUstUintStatusCetEleo_Unk(LinkLi8iStatusStatusn«>4e«
位的元CEIemType&e)〃川e返回1中第Linti.intN)〃却外表中第i个G«?tEkii_Cir(C)rLinkListI,intGetBlen.DulOullinklist
索i个均期元素的值元W法7i.int&c)〃匐外表中第i个元案.L.inti.intte)〃得田泉中第
(1»法-7i个无索.算法・7
if(i<l||i>Llength)intJ=l:<(
returnERROR;if(i<llU>LldiLeWb_Link(intJ=l:intJ=i;
e=a(Ldenui4);U)if(i<i||i>l.ijitl.nngth_Cirif(i<l||i>Li9tlongth.D
returnOK;returnERROR;(L»ul(L»
)LinkListp:returnERROR:returnliRROR:
p=L->bexi:CirLInkLlstp:DulLinkListp:
p=L->next:p-L->n0n;
(<hik(j<i)
p-p->nicxt;{(
jfl>-p->r>oxt;p-p->next;
)Ji:Jf
e=p-><fata:)1
returnOK;O=p・〉dnt«l:g|k->dnS;
)returnCK;|return«;)
得到相StatusElemType_SQ(SqlistStatusBlcnTypeLinkfLituListStatusStatusStAtufi
应指针&e)p.int&e)ElcuTypcCir<Ciri.inkI.i5tElcnTypcDul(DulLinkl.istElrrTypcDul(Dull.inkl.ist
指向位(1Aint&e)p.int4c>p.int&e)
置的元e»*p;if(lp)1(1
索returnOK;r&tumERROR;if(!p)if(!p>
);e-p->data:returnERROR;returnERROR;returnERROR:
returnOK:}e=p->data:c=p->data:e=p->data:
rx?tuinOK;}returnOK:)rviumOK:)
每到湎intLocateElem_Sq(Sqli$tintLocatcElca_Ltnk(LinkListintintint
足条件UElemTypeeftatusL>iniLocaicEle<i_Clr(CirLlnkLlstLocauBIai.Djl(DulLinkLUiLocaieEletiIXiHUjlLlnkUst
的元崇(•comareHInt/n")〃返回L中e,St6tu8<*co«otire>(lnt.hi))//LintL.intLint
的位置第一个与e满足compare。关东得到涓足箓件的。在我的常一次出Status(*c(M|mre)(int.int))/◎,Status(*c(ap(ire)(int.int)*\Status(♦roap**^)(int.int))/
的元素的位序,若无返回0现的位置,将弘满足条件的。花表的第一次)〃得到济足金件的c花表的第,得到涡足条件的。任表的决一次
[{出现的位H一次出现的位H出现俯位H
int,p;inii=l:1({
p・Lelem;〃p的初位为外1LinkListp-L-Wxt:inti=hinti=l:inii=);
个元素的在储位置whilc<p&4!co<pare(p->data.Cirl.inkl.istp-L->ncxt;Dull.inkListp-l.->next:bull.inkl.istp"!.->ncxt;
inti=lj/i的初值为第1个e))
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《六年级书法暑假系统复习课件》
- 春假背诵速记计划|初中英语口语交际训练讲义
- 北师大版高一数学:指数对数函数单元教学策略分享
- 广西水利集团考试试卷
- 2026年社区卫生服务中心工作人员招聘考试笔试试题(含答案)
- 2026年生物工程《生物技术》培训试卷
- 2026年安全生产管理真题及答案
- 国开一体化平台00287《地方政府学》机考试题及答案
- 多式联运运营指南(2025年版)
- 物流管理《运输管理》2026年结合培训试卷
- 2026交管12123学法减分题库500题(含标准答案+详细解析)
- 2025年云南文山州州属事业单位选调107人备考题库(含答案解析)
- 南理工机械制图教案第9讲 直线的投影一
- 2026年湖南省中考数学试卷(含答案及解析)
- 高中语文阅读理解万能答题公式(高考完整版.全覆盖)
- 应急救援后勤保障方案
- 《底层逻辑》刘润
- 2023年全国职业院校技能大赛制度汇编
- HG20202-2014 脱脂工程施工及验收规范
- 财务经理劳务合同电子版
- 20G520-1-2钢吊车梁(6m-9m)2020年合订本
评论
0/150
提交评论