数据结构线性表总结_第1页
数据结构线性表总结_第2页
数据结构线性表总结_第3页
数据结构线性表总结_第4页
数据结构线性表总结_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论