华农数据结构上机实验答案_第1页
华农数据结构上机实验答案_第2页
华农数据结构上机实验答案_第3页
华农数据结构上机实验答案_第4页
华农数据结构上机实验答案_第5页
已阅读5页,还剩176页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

tdiohalloch#defineOK1#defineERROR0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineElemTypeint{{LelemElemTypemallocLISTINITSIZEsizeofElemType));engthistsizeLISTINITSIZErnOK}{printfTheListisempty");{printfTheListis:");lengthiprintfdL.elem[i]);}intfnrnOK}ListLintiinte{RRORlemTypenewbaseqp{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*sizeewbasesizeLISTINCREMENT}qLelemi);orpLelemLlengthpqphrnOK}iinte{emTypeqpRRORp=&(L.elem[i-1]);q=L.elem+L.length-1;p=*p;L.length--;rnOK}{ElemTypeex{printfASequenceListHasCreated.\n");}while(1){printf("1:Insertelement\n2:Deleteelement\n3:LoadallxitnPleasechoosen{scanfddixprintfInsertErrornprintfTheElementdisSuccessfullyInserted\n",x);anfdiprintfDeleteErrornprintfTheElementdisSuccessfullyDeleted\n",e);Tcase0:return1;}}}tdiohalloch#defineOK1#defineERROR0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineElemTypeint{{LelemElemTypemallocLISTINITSIZEsizeofElemType));engthistsizeLISTINITSIZErnOK}{lengthiprintfdL.elem[i]);intfnrnOK}{turnLlength}pee{elemirnOK}ListLintiinte{RRORlemTypepqnewbase{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*sizeewbasesizeLISTINCREMENT}qLelemi);forpLelem[L.length-1]);p>=q;p--)engthrnOK}idMergeListSqListLaSqListLbSqListLc{enListLengthLaenListLengthLbwhile((i<=La_len)&&(j<=Lb_len)){ElemLaiaiElemLbjbj{istInsertSqLckai}{istInsertSqLckbj}}while(i<=La_len){etElemLaiaiistInsertSqLckai}while(j<=Lb_len){etElemLbjbjistInsertSqLckbj}SqLc}{bLc{tInsertSqLaie}rintfListASqLa{tInsertSqLbie}rintfListBSqLbprintfListCMergeListLaLb,Lc);return;}tdiohalloch#defineOK1#defineERROR0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineElemTypeint{{LelemElemTypemallocLISTINITSIZEsizeofElemType));{intfNORROR}engthistsizeLISTINITSIZErnOK}{{printfThisListisemptyn");RROR}{lengthiprintfdL.elem[i]);}intfnrnOK}ListLintiinte{lemTypenewbasepq{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*size{intfNORROR}ewbasesizeLISTINCREMENT}qLelemi);forpLelem[L.length-1]);p>=q;p--)engthrnOK}{forijn-1;j>i;i++,j--){LelemiLelemjmjtemp}rnOK}{lemTypex{tInsertSqTix}printfTheListis:");SqTprintfTheturnedListis:");SqTreturn;}tdiohalloch#defineERROR0#defineOK1#defineElemTypeint{ntn{istpqElemTypee;inkListmallocsizeofLNodetNULLmallocsizeofLNode{LinkListmallocsizeofLNodeataepnextqnext;}rnOK}{inkListpLnextprintfTheListisempty");{printfTheLinkListis:");while(p){printfdp->data);pnext}}intfnrnOK}kListLintiElemTypee{depLswhile(p&&j<i-1){pnext}RRORfLNodeextsrnOK}tiElemTypee{depLqwhile(p->next&&j<i-1){pnext}RRORpnextqnext;rnOK}{ListTmTypexeprintfPleaseinputtheinitsizeofthelinklist:\n");printfPleaseinputthedelementofthelinklist:\n",n);{printfALinkListHasCreated.\n");nkLT}while(1){tfInsertelement\n2:Deleteelement\n3:LoadallxitnPleasechoosen{canfddixprintfInsertErrornprintfTheElementdisSuccessfullyInserted\n",x);fdiprintfDeleteErrornprintfTheElementdisSuccessfullyDeleted\n",e);Tcase0:return1;}}}tdiohalloch#defineERROR0#defineOK1#defineElemTypeint{ntn{istpqElemTypee;inkListmallocsizeofLNodetNULLmallocsizeofLNode{LinkListmallocsizeofLNodeataepnextqnext;}rnOK}{inkListpLnextprintfTheListisempty");{while(p){printfdp->data);pnext}}intfnrnOK}voidMergeListLLinkListLaLinkListLbLinkListLc){istpapbpcaLanextbLbnextwhile(pa&&pb){{nextpaapanext}{nextpbbpbnext}}cnextpapapb}{istLaLbLceLinkLLanrintfListAnkLLaeLinkLLbnrintfListBnkLLbMergeListLLa,Lb,Lc);printfListCnkLLcreturn;}tdiohalloch#defineOK1#defineERROR0#defineElemTypeint{ntn{istpqElemTypee;inkListmallocsizeofLNodetNULLmallocsizeofLNode{LinkListmallocsizeofLNodeataepnextqnext;}rnOK}{inkListpLnextprintfTheListisEmpty;while(p){printfdp->data);pnext}intfnrnOK}{inkListpLnextqtNULLwhile(p){pnextLnext;xtp}rnOK}{ListTeLinkLTnprintfTheListis:");nkLTprintfTheturnedListis:");nkLTreturn;}tdiohallochtdlibh#defineOK1#defineERROR0#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10pe{asetoptStackSqStackS{aseSElemTypemallocSTACKINITSIZEsizeofSElemTypeRRORS.top=S.base;izeSTACKINITSIZErnOK}StatusPushSqStackS,SElemTypee){{baseSElemTypereallocSbaseSstacksizeSTACKINCREMENTsiRRORSstacksizeeSTACKINCREMENT}pernOK}PopSqStackSSElemTypee{RRORe=*--S.top;rnOK}etTopSqStackSSElemTypee{RRORrnOK}{whileS.top!=S.base){S.top--;}returni;}usStackTraverseSqStackS{emTypepSElemTypemallocsizeofSElemTypep=S.top;printfTheStackisEmpty;{printfTheStackis:");p--;S.base--;while(p!=S.base){printfd*p);p--;}}intfnrnOK}{kSxeprintfAStackHasCreated.\n");while(1){StacknLoadtheStacknExitnPleasechoosen);{nfdxprintfPushErrornprintfTheElementdisSuccessfullyPushed!\n",x);eprintfPopErrornprintfTheElementdisSuccessfullyPoped\n",e);opSeprintfGetTopErrornprintfTheTopElementisd\n",e);erseScase0:return1;}}}tdiohalloch#defineOK1#defineERROR0e#defineMAXQSIZE100{TypebasetQueueSqQueueQ{QbaseQElemTypemallocMAXQSIZEsizeofQElemType;RRORntQrearrnOK}StatusEnQueueSqQueueQ,QElemTypee){RROReQrearerearQrearMAXQSIZErnOK}DeQueueSqQueueQQElemTypee{RRORQfrontQfrontMAXQSIZErnOK}etHeadSqQueueQQElemTypee{RRORrnOK}{returnQrearQfrontMAXQSIZEMAXQSIZE}QueueTraverseSqQueueQ{printfTheQueueisEmpty;{printfTheQueueis:");while(i!=Q.rear){printfdQbasei);}}intfnrnOK}{eSmTypexeprintfAQueueHasCreated.\n");while(1){printf("1:Enter\n2:Delete\n3:GettheFront\n4:ReturntheLengthoftheQueuenLoadtheQueuen0:Exit\nPleasechoose:\n");{anfdxprintfEnterErrornprintfTheElementdisSuccessfullyEntered\n",x);QueueSeprintfDeleteErrornprintfTheElementdisSuccessfullyDeleted\n",e);tHeadSeprintfGetHeadErrorn;printfTheHeadoftheQueueisd!\n",e);erseScase0:return1;}}}tdiohalloch#defineERROR0#defineOK1#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10pe{asetoptStackSqStackS{baseSElemTypemallocSTACKINITSIZEsizeofSElemTypeRRORS.top=S.base;izeSTACKINITSIZErnOK}StatusPushSqStackS,SElemTypee){{baseSElemTypereallocSbaseSstacksizeSTACKINCREMENTsiRRORSstacksizeeSTACKINCREMENT}pernOK}PopSqStackSSElemTypee{RRORe=*--S.top;rnOK}ckEmptySqStackS{return;return1;}{kSwhile(N){ushSNNN8;}whileStackEmpty(S)){Serintfde}return;}ypeallochtdiohathhrocessh#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineSTACK_INIT_SIZE10#defineSTACKINCREMENT2{asetoptStackSqStackS{baseSElemTypemallocSTACKINITSIZEsizeofSElemTypereturn;S.top=S.base;izeSTACKINITSIZErnOK}usStackEmptySqStackS{RUEALSE}StatusPushSqStackS,SElemTypee){{baseSElemTypereallocSbaseSstacksizeSTACKINCREMENTsireturn;SstacksizeeSTACKINCREMENT}pernOK}PopSqStackSSElemTypee{RRORe=*--S.top;rnOK}eck{mTypechpe{while*p){case:Pushspcase:tackEmptys{se{printfisntmatchedpairsn;return;}{p++;}}{printflackofleftparenthesisn;return;}}intfmatchingnprintflackofrightparenthesisn;}}{return1;}ypeallochtdiohathhrocessh#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineSTACK_INIT_SIZE10#defineSTACKINCREMENT2{asetopLEfptStackSqStackS{aseSElemTypemallocSTACKINITSIZEsizeofSElemTypereturn;S.top=S.base;izeSTACKINITSIZErnOK}usStackEmptySqStackS{RUEALSE}arStackSqStackS{S.top=S.base;rnOK}troyStackSqStackS{S.top=NULL;zernOK}StatusPushSqStackS,SElemTypee){{baseSElemTypereallocSbaseSstacksizeSTACKINCREMENTsireturn;SstacksizeeSTACKINCREMENT}pernOK}PopSqStackSSElemTypee{RRORe=*--S.top;rnOK}usStackTraverseSqStackSStatusvisitSElemType{while(S.top>S.base)SbaseintfnrnOK}tatusvisitSElemTypec{rintfccrnOK}Edit{{while(ch!='\n'){{cks}}rsesvisitacks}troyStacks}{itreturn1;}tdiohalloch#defineOK1#defineERROR0#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10{{nitStackTSqStackTS{basecharmallocSTACKINITSIZEsizeofcharRRORS.top=S.base;izeSTACKINITSIZErnOK}nitStackNSqStackNS{baseintmallocSTACKINITSIZEsizeofintRRORS.top=S.base;izeSTACKINITSIZErnOK}hare{{SbasecharreallocSbaseSstacksizeSTACKINCREMENTsizeofRRORSstacksizeeSTACKINCREMENT}pernOK}nte{{SbaseintreallocSbaseSstacksizeSTACKINCREMENTsizeofiRRORSstacksizeeSTACKINCREMENT}pernOK}{RRORe=*--S.top;rnOK}{RRORe=*--S.top;rnOK}TopTSqStackTS{RRORreturne;}{RRORreturne;}decharthetachartheta{{akakakakakakeak}{akakakakakakeak}return'<';return'=';return'>';}precedecharecharc{{return'>';return'<';}{return'<';return'>';}{return'=';return'<';}return'>';{return'=';return'<';}}{return1;return;}b{{reakreakreakcase:printfInputerror}returns;}{PTRPNDPTR{{m=c-'0';{NOPNDyhNOPNDy}{hNOPNDy}}{PTRc{sePushTOPTRccgetcharbreaksePopTOPTRccgetcharbreakcase:TOPTRthetaNOPNDbNOPNDaPushNOPNDOperateathetab;}}}printfdGetTopNOPND;return;}allochtdioh#defineOK1#defineERROR0e#defineMAXQSIZE100{TypebasetQueueSqQueueQ{QbaseQElemTypemallocMAXQSIZEsizeofQElemType;RRORntQrearrnOK}StatusEnQueueSqQueueQ,QElemTypee){RROReQrearerearQrearMAXQSIZErnOK}DeQueueSqQueueQQElemTypee{RRORQfrontQfrontMAXQSIZErnOK}etHeadSqQueueQQElemTypee{RRORrnOK}{returnQrearQfrontMAXQSIZEMAXQSIZE}QueueTraverseSqQueueQ{printfTheQueueisEmpty;{printfTheQueuis:");while(i!=Q.rear){printfdQbasei;}}intfnrnOK}{eSi{eueSe}pSbaseSfrontwhile(S.rear>S.front){eSfrontQueueSeQueueSeqSbaseSfront{pSbaseSfront}}printffn,t);rnOK}tdiohtdlibhostreamhdefineMAXSTRLENedcharSStringMAXSTRLENoidgetnextSStringTintnext{twhile(i<T[0]){{j}}}{gS{forjjMAXSTRLENchnj){}S[0]=j-1;printfNEXTJis:");Sjprintfdnextj;intfn}return;}tdiohtdlibhostreamh#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASLBLE-1#defineOVERFLOW-2defineMAXSTRLENedcharSStringMAXSTRLENoidgetnextSStringTintnext{twhile(i<T[0]){{j}}}Tintpos{whilei<=S[0]&&j<=T[0]){{}}rniTreturn;}{T{foriiMAXSTRLENchni){}S[0]=i-1;foriiMAXSTRLENchni){}T[0]=i-1;osIndexKMPSTprintfdnpos}return;}tdiohallochTRUE1FALSE0OK1ERROR0INFEASIBLE-1OVERFLOW-2charElemType;typedef{structBiTNodemTypedataildBiTreeCreateBiTreeBiTreeT){{iTNodeRRORatachateBiTreeTlchildateBiTreeTrchild}rnT}StatusVisitElemTypee{{rintfcernOK}ALSE}PreOrderTraverseBiTreeT{{arnOKRROR}rnOK}InOrderTraverseBiTreeT{{arnOKRROR}rnOK}PostOrderTraverseBiTreeT{{arnOKRROR}rnOK}{BiTreeT;iTreeTrderTraverseTintfnintfnOrderTraverseTintfnreturn;}tdiohallochTRUE1OK1ERROR0INFEASIBLE-1OVERFLOW-2STACKINIT_SIZE100STACKINCREMENT10e{mTypedataildtack{BiTreebaseBiTreetopnode{BiTreech;{ttusInsertBiTBiTreeTintk{BiTNodeqp=*T;whilep){RRORpkpdata?p->lchild:p->rchild;}pBiTNodemallocsizeofBiTNodeatakplchildprchildNULLrnOK}BiTreeCreateBiT(intn){iTreeTNULL{}rnT}StatusVisitElemTypee{printf("%d",e);rnOK}PreOrderTraverseBiTreeT{{arnOKRROR}rnOK}InOrderTraverseBiTreeT{{arnOKRROR}rnOK}PostOrderTraverseBiTreeT{{arnOKRROR}rnOK}sVisitsElemTypeeintmintt{rnOK}sPostsearchBiTreeTintmintt{{rnOKRROR}rnOK}tStackSqStackS{baseBiTreemallocSTACKINITSIZEsizeofBiTreeRRORS.top=S.base;izeSTACKINITSIZErnOK}StatusPushSqStackS,BiTreee){{baseBiTreereallocSbaseSstacksizeSTACKINCREMENTsizeoRROReSTACKINCREMENT}pernOK}PopSqStackSBiTreee{RRORe=*--S.top;rnOK}ckEmptySqStackS{return1;return;}InOrderTraversesBiTreeT{BiTreep;{whilep){hsplchild}spVisitp>data);rchild}rnOK}itqueuelinkqueueq{qrearqueueptrmallocsizeofqueuenodeNULL}oidenqueuelinkqueueqBiTreep{ueueptrsfqueuenode}ddequeuelinkqueueqBiTreep{ueueptrspsch;extsnexttprintf%d",data);}{return1;return;}raverseBiTreebt{BiTreep;whilequeueempty(q)!=1){LldLld}intfn}{BiTreeT;ateBiTnrderTraverseTintfnintfnOrderTraverseTintfnostsearchTmtrintfnrintfnostsearchTmtrintfnrintfnrderTraverseTintfnintfnOrderTraverseTintfnintfnreturn;}4.实现二叉排序树的各种算法(2)tdiohallochTRUE1OK1ERROR0INFEASIBLE-1OVERFLOW-2STACKINIT_SIZE100STACKINCREMENT10e{mTypedataildtack{BiTreebaseBiTreetopnode{BiTreech;{ttusInsertBiTBiTreeTintk{BiTNodeqp=*T;whilep){RRORpkpdata?p->lchild:p->rchild;}pBiTNodemallocsizeofBiTNodeatakplchildprchildNULLrnOK}BiTreeCreateBiT(intn){iTreeTNULL{}rnT}StatusVisitElemTypee{printf("%d",e);rnOK}PreOrderTraverseBiTreeT{{arnOKRROR}rnOK}InOrderTraverseBiTreeT{{arnOKRROR}rnOK}PostOrderTraverseBiTreeT{{arnOKRROR}rnOK}sVisitsElemTypeeintmintt{rnOK}sPostsearchBiTreeTintmintt{{rnOKRROR}rnOK}tStackSqStackS{baseBiTreemallocSTACKINITSIZEsizeofBiTreeRRORS.top=S.base;izeSTACKINITSIZErnOK}StatusPushSqStackS,BiTreee){{baseBiTreereallocSbaseSstacksizeSTACKINCREMENTsizeoRROReSTACKINCREMENT}pernOK}PopSqStackSBiTreee{RRORe=*--S.top;rnOK}ckEmptySqStackS{return1;return;}InOrderTraversesBiTreeT{BiTreep;{whilep){hsplchild}spVisitp>data);rchild}rnOK}itqueuelinkqueueq{qrearqueueptrmallocsizeofqueuenodeNULL}oidenqueuelinkqueueqBiTreep{ueueptrsfqueuenode}ddequeuelinkqueueqBiTreep{ueueptrspsch;extsnexttprintf%d",data);}{return1;return;}raverseBiTreebt{BiTreep;whilequeueempty(q)!=1){LldLld}intfn}hangeBiTreeT{BiTreep;{lchildTlchildTrchildhildpxchangeTlchildxchangeTrchild}rnOK}DepthBiTreeT{{thTlchildpthTrchildthLeftdepthRightdepthLeftdepthRight}depthval}ountieafBiTreeTintn{{hildnhildn}rnOK}{BiTreeT;ateBiTnrderTraverseTintfnintfnOrderTraverseTintfnostsearchTmtrintfnrintfnostsearchTmtrintfnrintfnrderTraverseTintfnintfnOrderTraverseTintfnintfnngeTrderTraverseTintfnintfnOrderTraverseTintfnngeTrderTraverseTintfnintfnOrderTraverseTintfnprintfdnDepthT);printfdnkreturn;}tdiohallochtringh{nedintweightsignedintparentlchildrchildanCodevoidSelectHuffmanTreeHTintnintsint&s2){ss;riini{t{}{}}}voidHuffmanCodingHuffmanTreeHTHuffmanCodeHC,int*w,intn){unsignedintc,f;m=2*n-1;HTHuffmanTreemallocm+1)*sizeof(HTNode));{HT[i].weight=w[i-1];HTiparent;HTi].lchild=0;HTirchild;}i{HTiweight;HTiparent;HTi].lchild=0;HTirchild;}rinimi{SelectHTissHTsparenti;HT[s2].parent=i;HTilchilds;HT[i].rchild=s2;HTiweightHTs1].weight+HT[s2].weight;}locnsizeofchar{nforcifHTiparentfcffHTfparent)HCi(char*)malloc((n-start)*sizeof(char));}}{uffmanTreeHTuffmanCodeHCw=(int*)malloc(n*sizeof(int));niHCchar*)malloc((n+1)*sizeof(char*));HTHuffmanTreemalloc2*n+1+1)*sizeof(HTNode));HuffmanCodingHTHC,w,n);{sHCi}return;}tdiohalloch{TypeelemvoidCreatSeqSSTableSTintn){STelemElemTypemallocnsizeofElemType;{intfERRORnreturn;}{emp}n}ekey{STlengthireturni;return;}{TtSeqSTnprintfTheelementpositionis%d.\n",loc);printfTheelementisnotexist.\n");return;}tdiohalloch{TypeelemvoidCreatSeqSSTableSTintn){lemElemTypemallocnsizeofElemType{intfERRORnreturn;}{emp}n}ekey{while(low<=high){midlowhigh)/2;idhigh=mid-1;}return-1;}{TtSeqSTnprintfTheelementpositionis%d.\n",loc);printfTheelementisnotexist.\n");return;}tdiohallochtdlibhdefineEQab)((a)==(b))#defineSUCCESS1#defineUNSUCCESS0#defineNULLKEY-1{TypeelemitHashTableHashTableH{Hcount0;HelemElemType)malloc(length*sizeof(ElemType));{ntfERRORreturn;}thiHelemi=NULLKEY;}unsignedHashElemTypeK{urnKlength}llisionintp{plength}lemTypekintpintc{hkwhile(H.elem[p]!=NULLKEY&&!EQ(k,H.elem[p])){}pSUCCESSSUCCESS}leHElemTypee{{Helemp=e;}eturnc}raverseHashHashTableH{thiprintf("X");printfdH.elem[i]);intfn}{ElemTypee;ashTableHwhile(e!=-1){e}rseHashHprintfAveragesearchlengthfn",i/j);return;}tdioh{MAXSIZE20LTab)((a)<(b))Typekey{TyperMAXSIZEsertSortSqListL{Llengthi{{rLriL.r[i]=L.r[i-1];forjiLT(L.r[0].key,L.r[j].key);j--)LrjLrjLrjLr;}LlengthkprintfdLrk.key);intfn}}{Llengthireturn;}tdiohdefineMAXSIZE20defineLTa,b)((a)<(b)){Typekey#defineT3{TyperMAXSIZEnsertSortSqListL{Llengthi{rLrihiwhile(low<=high){mlowhigh)/2;high=m-1;}forjij>=high+1;j--)LrjLrjLrhighLr;LlengthkprintfdLrk.key);intfn}}{LlengthinsertSortLreturn;}tdiohdefineMAXSIZE20defineLTa,b)((a)<(b)){Typekey{TyperMAXSIZEvoidShellInsertSqListLintdk){dkiLlengthi{rLriforjidkjLTLrkeyLrjkey);j-=dk)rjdkLrjLrjdkLr}}oidShellSortSqListLintdlta{akdlta{tLdltantmmLlengthmprintfdLrm.key);intfn}}{LlengthilSortLLlengthreturn;}tdioh{MAXSIZE20T3Typekey{TyperMAXSIZEbbleSqListL{Llengthnoswapi{lengthj{LrkeyLrjkey;LrjkeyLrj.key;LrjkeyLr].key;}ntmmLlengthmprintfdLrm.key);intfn}}{LlengthiubbleLreturn;}tdiohalloch#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineOK1#defineERROR0{Typeelem{LelemElemTypemallocLISTINITSIZEsizeofElemType));engthistsizeLISTINITSIZErnOK}{printfTheListisempty");{LlengthiprintfdL.elem[i]);}intfnrnOK}ListLintiinte{RRORlemTypenewbaseqp{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*sizeewbasesizeLISTINCREMENT}mipLelemLlengthpqphrnOK}thigh{LelemLelemlow;votkeyLelemlowwhile(low<high){while(low<high&&L.elem[high]>=pivotkey)high--;LelemlowLelemhighwhile(low<high&&L.elem[low]<=pivotkey)LelemhighLelemlow}LelemlowLelem;SqLreturnlow}oidQSortSqListLintlowinthigh{{otlocPartitionLlowhighQSort(L,low,pivotloc-1);rtLpivotlochigh}}ickSortSqListL{QSortLLlength;}{{tInsertSqLie}ortLreturn;}tdiohalloch{LIST_INIT_SIZE100LISTINCREMENT10OK1ERROR0Typeelem{LelemElemTypemallocLISTINITSIZEsizeofElemType));engthistsizeLISTINITSIZErnOK}{printfTheListisempty");{LlengthiprintfdL.elem[i]);}intfnrnOK}ListLintiinte{RRORlemTypenewbaseqp{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*sizeewbasesizeLISTINCREMENT}mipLelemLlengthpqphrnOK}eySqListLinti{ijLlengthjreturni;}lectSortSqListL{lengthi{{LelemiLelemjmjtemp}SqL}}{{tInsertSqLie}return;}tdiohalloch#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineOK1#defineERROR0{Typeelem{LelemElemTypemallocLISTINITSIZEsizeofElemType));engthistsizeLISTINITSIZErnOK}{printfTheListisempty");{LlengthiprintfdL.elem[i]);}intfnrnOK}ListLintiinte{RRORlemTypenewbaseqp{newbaseElemTypereallocLelemLlistsize+LISTINCREMENT)*sizeewbasesizeLISTINCREMENT}mipLelemLlengthpqphrnOK}oidHeapAdjustSqListLintsintm{elemsmj{LelemsLelemj}emsrc}apSortSqListL{foriLlength;i>0;i--)HeapAdjustL,i,L.length);foriLlengthi=1;i--){SqLLelemLelemi;mitempHeapAdjust(L,1,i-1);}}{{tInsertSqLie}eapSortLreturn;}6.8归并排序(非递归算法)tdioh#defineMAXSIZE100{typekey{ordtyperMAXSIZEdvisittablet{tlengthiprintfdtri].key);}voidmergetabletabstable*tabg,intu,intm,intv){while(i<=m&&j<=v){{bsri}{bsrj}}titabsrttjtabsrt}voidmergepasstable*tabs,table*tabg,intlen){ntabglengthtabslengthwhile(i<=n-2*len+1){merge(tabs,tabg,i,i+len-1,i+2*len-1);}merge(tabs,tabg,i,i+len-1,n);bsrj}mergesorttabletab{while(len<tab->length){mergepasstabtemp,len);mpintfn}}{tablengthimergesorttab;return;}tdioh#defineMAX_NUM_OF_KEY8#defineRADIX10defineMAXSPACE10000{eystypekeysMAXNUMOFKEY{AXSPACERADIXidprintSLListSLListL{oriLrnextiiLrinext{forkLkeynum;k>=0;k--)printfdLrikeys[k]);printf("");}intfn}voidDistribute(SLList&L,inti,ArrTypef,ArrTypee){XjLrnextppLrpnext{ejnextp}}voidCollect(SLList&L,inti,ArrTypef,ArrTypee){jrnextfjwhile(j<RADIX-1){forjjjRADIXfjj);{tnextfj}}next}dixSortSLListL{ArrTypef,e;numiinextiLrecnumnextnumi{DistributeLifeectLifentSLListL}}{mcnumi{rikeysjorjtjttjLrikeysjt;j}ortLreturn;}tdiohtringhdefineMAXVERTEX_NUM20{xMAXVERTEXNUMMAXVERTEXNUM{AdjMatrixarcs;{xnumireturni;return-1;}{GarcnumxnumiexsixnumixnumjGarcsijadj=0;cnumk{{lGvexsllGvexnuml{}{xslvavexslvb}xslvb}{exsvaexsvb}Garcsijadj=1;}return1;}{xnumi{xnumjprintfdG.arcs[i][j].adj);intfn}return;}{MGraphG;DGGGreturn;}tringhincludemalloch/*malloc()等*/includestdlibh*exit()*/typedefintInfoType/defineMAXNAME/*顶点字符串的最大长度+1*/typedefcharVertexTypeMAXNAME*/接表存储表示*/defineMAXVERTEX_NUM20#defineTRUE1#defineFALSE0{ructArcNodenextarcinfo{VertexTypedata;/*顶点信息*/odeAdjListMAXVERTEXNUM{AdjListvertices;rcnumpeuxnumireturni;return-1;}dCreateGraphALGraphGVertexTypevavbArcNode*p;//printf("Enterthetypeofmap:(0~3):");//printf("EnterVertexnumber,Arcnumber:");vexnumGarcnumprintfEnterdVertexn",(*G).vexnum);foriiGvexnumi)/*构造顶点向量*/{icesidata}bytheblankspace\n");else图*/blankspacen);forkkGarcnumk)/*构造表结点链表*/{eVexGvbpArcNodemallocsizeofArcNodejvexj{pinfointmallocsizeof(int));nfow}pinfo=NULL;/*图*/pnextarcGvertices[i].firstarc;/*插在表头*/d{pArcNodemallocsizeofArcNodejvexi{pinfointmallocsizeofint));nfow}pinfo=NULL;/*无向图*/pnextarcG.vertices[j].firstarc;/*插在表头*/}}}VertexType*GetVex(ALGraphG,intv)returnGverticesvdata;}exTypevArcNode*p;pGverti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论