




已阅读5页,还剩280页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1、顺序表1SEQLISTH1TESTCPP62、单链表8LISTNODEH8SINGLELISTH10TESTCPP203、双向链表22NODELISTH22DOUBLELISTH24TESTCPP344、循环链表36LISTNODEH36CIRCULARLISTH37TESTCPP475、顺序栈49SEQSTACKH49TESTCPP546、链式栈55STACKNODEH55LINKSTACKH56TESTCPP607、顺序队列62SEQQUEUEH63TESTCPP688、链式队列70QUEUENODEH70LINKQUEUEH71TESTCPP759、优先级队列77QUEUENODEH77COMPAREH78PRIORITYQUEUEH80TESTCPP8510、串88MYSTRINGH88MYSTRINGCPP90TESTCPP10111、二叉树104BINTREENODEH104BINARYTREEH112TESTCPP12412、线索二叉树126THREADNODEH126THREADTREEH128THREADINORDERITERATORH128TESTCPP13913、堆140MINHEAPH140TESTCPP14714、哈夫曼树149BINTREENODEH149BINARYTREEH151MINHEAPH156HUFFMANH161TESTCPP16315、树164QUEUENODEH164LINKQUEUEH165TREENODEH169TREEH170TESTCPP18716、B树189BTREENODEH189BTREEH192TESTCPP21517、图217MINHEAPH217EDGEH222VERTEXH223GRAPHH224TESTCPP24618、排序249DATAH249QUEUENODEH255LINKQUEUEH259SORTH263TESTCPP2781、顺序表SEQLISTHCONSTINTDEFAULTSIZE100TEMPLATECLASSSEQLISTPUBLICSEQLISTINTSZDEFAULTSIZEM_NMAXSIZESZ,M_NCURRENTSIZE1IFSZ0M_ELEMENTSNEWTYPEM_NMAXSIZESEQLISTDELETEM_ELEMENTSINTLENGTHCONST/GETTHELENGTHRETURNM_NCURRENTSIZE1INTFINDTYPEXCONST/FINDTHEPOSITIONOFXINTISELEMENTTYPEXCONST/ISITINTHELISTINTINSERTTYPEX,INTI/INSERTDATAINTREMOVETYPEX/DELETEDATAINTISEMPTYRETURNM_NCURRENTSIZE1INTISFULLRETURNM_NCURRENTSIZEM_NMAXSIZE1TYPEGETINTI/GETTHEITHDATARETURNIM_NCURRENTSIZECOUTINTSEQLISTFINDTYPEXCONSTFORINTI0IINTSEQLISTISELEMENTTYPEXCONSTIFFINDX1RETURN0RETURN1TEMPLATEINTSEQLISTINSERTTYPEX,INTIIFIM_NCURRENTSIZE1|M_NCURRENTSIZEM_NMAXSIZE1COUTIJM_ELEMENTSJM_ELEMENTSJ1M_ELEMENTSIXRETURN1TEMPLATEINTSEQLISTREMOVETYPEXINTSIZEM_NCURRENTSIZEFORINTI0IVOIDSEQLISTPRINTFORINTI0IINCLUDE“SEQLISTH“USINGNAMESPACESTDINTMAINSEQLISTTEST15INTARRAY152,5,8,1,9,9,7,6,4,3,2,9,7,7,9FORINTI0ICLASSSINGLELISTTEMPLATECLASSLISTNODEPRIVATEFRIENDTYPENAMESINGLELISTLISTNODEM_PNEXTNULLLISTNODECONSTTYPEITEM,LISTNODENEXTNULLM_DATAITEM,M_PNEXTNEXTLISTNODEM_PNEXTNULLPUBLICTYPEGETDATAFRIENDOSTREAMPRIVATETYPEM_DATALISTNODEM_PNEXTTEMPLATETYPELISTNODEGETDATARETURNTHISM_DATATEMPLATEOSTREAMDELETEHEADPUBLICVOIDMAKEEMPTY/MAKETHELISTEMPTYINTLENGTH/GETTHELENGTHLISTNODEFINDTYPEVALUE,INTN/FINDTHDNTHDATAWHICHISEQUALTOVALUELISTNODEFINDINTN/FINDTHENTHDATABOOLINSERTTYPEITEM,INTN0/INSERTTHEDATAINTHENTHPOSITIONTYPEREMOVEINTN0/REMOVETHENTHDATABOOLREMOVEALLTYPEITEM/REMOVEALLTHEDATAWHICHISEQUALTOITEMTYPEGETINTN/GETTHENTHDATAVOIDPRINT/PRINTTHELISTPRIVATELISTNODEHEADTEMPLATEVOIDSINGLELISTMAKEEMPTYLISTNODEPDELWHILEHEADM_PNEXTNULLPDELHEADM_PNEXTHEADM_PNEXTPDELM_PNEXTDELETEPDELTEMPLATEINTSINGLELISTLENGTHLISTNODEPMOVEHEADM_PNEXTINTCOUNT0WHILEPMOVENULLPMOVEPMOVEM_PNEXTCOUNTRETURNCOUNTTEMPLATELISTNODESINGLELISTFINDINTNIFNPMOVEHEADM_PNEXTFORINTI0IM_PNEXTIFPMOVENULLCOUTLISTNODESINGLELISTFINDTYPEVALUE,INTNIFNPMOVEHEADINTCOUNT0WHILECOUNTNIFPMOVEM_DATAVALUECOUNTIFPMOVENULLCOUTBOOLSINGLELISTINSERTTYPEITEM,INTNIFNPMOVEHEADLISTNODEPNODENEWLISTNODEITEMIFPNODENULLCOUTM_PNEXTIFPMOVENULLCOUTM_PNEXTPMOVEM_PNEXTPMOVEM_PNEXTPNODERETURN1TEMPLATEBOOLSINGLELISTREMOVEALLTYPEITEMLISTNODEPMOVEHEADLISTNODEPDELHEADM_PNEXTWHILEPDELNULLIFPDELM_DATAITEMPMOVEM_PNEXTPDELM_PNEXTDELETEPDELPDELPMOVEM_PNEXTCONTINUEPMOVEPMOVEM_PNEXTPDELPDELM_PNEXTRETURN1TEMPLATETYPESINGLELISTREMOVEINTNIFNPMOVEHEAD,PDELFORINTI0IM_PNEXTIPMOVEPMOVEM_PNEXTIFPMOVEM_PNEXTNULLCOUTM_PNEXTPMOVEM_PNEXTPDELM_PNEXTTYPETEMPPDELM_DATADELETEPDELRETURNTEMPTEMPLATETYPESINGLELISTGETINTNIFNPMOVEHEADM_PNEXTFORINTI0IM_PNEXTIFNULLPMOVECOUTM_DATATEMPLATEVOIDSINGLELISTPRINTLISTNODEPMOVEHEADM_PNEXTCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTOVER“USINGNAMESPACESTDINCLUDE“SINGLELISTH“INTMAINSINGLELISTLISTFORINTI0ICLASSDOUBLYLISTTEMPLATECLASSLISTNODEPRIVATEFRIENDCLASSDOUBLYLISTLISTNODEM_PPRIORNULL,M_PNEXTNULLLISTNODECONSTTYPEITEM,LISTNODEPRIORNULL,LISTNODENEXTNULLM_DATAITEM,M_PPRIORPRIOR,M_PNEXTNEXTLISTNODEM_PPRIORNULLM_PNEXTNULLPUBLICTYPEGETDATAPRIVATETYPEM_DATALISTNODEM_PPRIORLISTNODEM_PNEXTTEMPLATETYPELISTNODEGETDATARETURNTHISM_DATADOUBLELISTHINCLUDE“LISTNODEH“TEMPLATECLASSDOUBLYLISTPUBLICDOUBLYLISTHEADNEWLISTNODE/THEHEADNODEPOINTTOITSELFHEADM_PPRIORHEADHEADM_PNEXTHEADDOUBLYLISTMAKEEMPTYDELETEHEADPUBLICVOIDMAKEEMPTY/MAKETHELISTEMPTYINTLENGTH/GETTHELENGTHOFTHELISTLISTNODEFINDINTN0/FINDTHENTHDATALISTNODEFINDDATATYPEITEM/FINDTHEDATAWHICHISEQUALTOITEMBOOLINSERTTYPEITEM,INTN0/INSERTITEMINTHENTHDATATYPEREMOVEINTN0/DELETETHENTHDATATYPEGETINTN0/GETTHENTHDATAVOIDPRINT/PRINTTHELISTPRIVATELISTNODEHEADTEMPLATEVOIDDOUBLYLISTMAKEEMPTYLISTNODEPMOVEHEADM_PNEXT,PDELWHILEPMOVEHEADPDELPMOVEPMOVEPDELM_PNEXTDELETEPDELHEADM_PNEXTHEADHEADM_PPRIORHEADTEMPLATEINTDOUBLYLISTLENGTHLISTNODEPPRIORHEADM_PPRIOR,PNEXTHEADM_PNEXTINTCOUNT0WHILE1IFPPRIORM_PNEXTPNEXTBREAKIFPPRIORPNEXTBREAKCOUNT2PPRIORPPRIORM_PPRIORPNEXTPNEXTM_PNEXTRETURNCOUNTTEMPLATELISTNODEDOUBLYLISTFINDINTN0IFNPMOVEHEADM_PNEXTFORINTI0IM_PNEXTIFPMOVEHEADCOUTBOOLDOUBLYLISTINSERTTYPEITEM,INTNIFNNEWNODENEWLISTNODEITEM,PMOVEHEADIFNEWNODENULLCOUTM_PNEXTIFPMOVEHEADCOUTM_PNEXTPMOVEM_PNEXTNEWNODEM_PPRIORPMOVEPMOVEM_PNEXTNEWNODENEWNODEM_PNEXTM_PPRIORNEWNODERETURN1TEMPLATETYPEDOUBLYLISTREMOVEINTN0IFNPMOVEHEAD,PDELFORINTI0IM_PNEXTIFPMOVEHEADCOUTM_PPRIORM_PNEXTPDELM_PNEXTPMOVEM_PNEXTM_PPRIORPDELM_PPRIORTYPETEMPPDELM_DATADELETEPDELRETURNTEMPTEMPLATETYPEDOUBLYLISTGETINTN0IFNPMOVEHEADFORINTI0IM_PNEXTIFPMOVEHEADCOUTM_DATATEMPLATEVOIDDOUBLYLISTPRINTLISTNODEPMOVEHEADM_PNEXTCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTOVER“LISTNODEDOUBLYLISTFINDDATATYPEITEMLISTNODEPPRIORHEADM_PPRIOR,PNEXTHEADM_PNEXTWHILEPPRIORM_PNEXTPNEXTIFPNEXTM_DATAITEMRETURNPNEXTPPRIORPPRIORM_PPRIORPNEXTPNEXTM_PNEXTCOUTINCLUDE“DOUBLYLISTH“USINGNAMESPACESTDINTMAINDOUBLYLISTLISTFORINTI0IGETDATACLASSCIRCULARLISTTEMPLATECLASSLISTNODEPRIVATEFRIENDCLASSCIRCULARLISTLISTNODEM_PNEXTNULLLISTNODECONSTTYPEITEM,LISTNODENEXTNULLM_DATAITEM,M_PNEXTNEXTLISTNODEM_PNEXTNULLPRIVATETYPEM_DATALISTNODEM_PNEXTCIRCULARLISTHINCLUDE“LISTNODEH“TEMPLATECLASSCIRCULARLISTPUBLICCIRCULARLISTHEADNEWLISTNODEHEADM_PNEXTHEADCIRCULARLISTMAKEEMPTYDELETEHEADPUBLICVOIDMAKEEMPTY/CLEARTHELISTINTLENGTH/GETTHELENGTHLISTNODEFINDTYPEVALUE,INTN/FINDTHENTHDATAWHICHISEQUALTOVALUELISTNODEFINDINTN/FINDTHENTHDATABOOLINSERTTYPEITEM,INTN0/INSERTTHEDATAINTOTHENTHDATAOFTHELISTTYPEREMOVEINTN0/DELETETHENTHDATABOOLREMOVEALLTYPEITEM/DELETEALLTHEDATASWHICHAREEQUALTOVALUETYPEGETINTN/GETTHENTHDATAVOIDPRINT/PRINTTHELISTPRIVATELISTNODEHEADTEMPLATEVOIDCIRCULARLISTMAKEEMPTYLISTNODEPDEL,PMOVEHEADWHILEPMOVEM_PNEXTHEADPDELPMOVEM_PNEXTPMOVEM_PNEXTPDELM_PNEXTDELETEPDELTEMPLATEINTCIRCULARLISTLENGTHLISTNODEPMOVEHEADINTCOUNT0WHILEPMOVEM_PNEXTHEADPMOVEPMOVEM_PNEXTCOUNTRETURNCOUNTTEMPLATELISTNODECIRCULARLISTFINDINTNIFNPMOVEHEADM_PNEXTFORINTI0IM_PNEXTIFPMOVEHEADCOUTLISTNODECIRCULARLISTFINDTYPEVALUE,INTNIFNPMOVEHEADINTCOUNT0WHILECOUNTNPMOVEPMOVEM_PNEXTIFPMOVEM_DATAVALUECOUNTIFPMOVEHEADCOUTBOOLCIRCULARLISTINSERTTYPEITEM,INTNIFNPMOVEHEADLISTNODEPNODENEWLISTNODEITEMIFPNODENULLCOUTM_PNEXTIFPMOVEHEADCOUTM_PNEXTPMOVEM_PNEXTPMOVEM_PNEXTPNODERETURN1TEMPLATEBOOLCIRCULARLISTREMOVEALLTYPEITEMLISTNODEPMOVEHEADLISTNODEPDELHEADM_PNEXTWHILEPDELHEADIFPDELM_DATAITEMPMOVEM_PNEXTPDELM_PNEXTDELETEPDELPDELPMOVEM_PNEXTCONTINUEPMOVEPMOVEM_PNEXTPDELPDELM_PNEXTRETURN1TEMPLATETYPECIRCULARLISTREMOVEINTNIFNPMOVEHEAD,PDELFORINTI0IM_PNEXTHEADIPMOVEPMOVEM_PNEXTIFPMOVEM_PNEXTHEADCOUTM_PNEXTPMOVEM_PNEXTPDELM_PNEXTTYPETEMPPDELM_DATADELETEPDELRETURNTEMPTEMPLATETYPECIRCULARLISTGETINTNIFNPMOVEHEADM_PNEXTFORINTI0IM_PNEXTIFPMOVEHEADCOUTM_DATATEMPLATEVOIDCIRCULARLISTPRINTLISTNODEPMOVEHEADM_PNEXTCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTOVER“INCLUDE“CIRCULARLISTH“USINGNAMESPACESTDINTMAINCIRCULARLISTLISTFORINTI0ICLASSSEQSTACKPUBLICSEQSTACKINTSZM_NTOP1,M_NMAXSIZESZM_PELEMENTSNEWTYPESZIFM_PELEMENTSNULLCOUTVOIDSEQSTACKPUSHCONSTTYPEITEMIFISFULLCOUTTYPESEQSTACKPOPIFISEMPTYCOUTTYPESEQSTACKGETTOPCONSTIFISEMPTYCOUTVOIDSEQSTACKPRINTCOUT“TOP“USINGNAMESPACESTDINCLUDE“SEQSTACKH“INTMAINSEQSTACKSTACK10INTINIT101,2,6,9,0,3,8,7,5,4FORINTI0ICLASSLINKSTACKTEMPLATECLASSSTACKNODEPRIVATEFRIENDCLASSLINKSTACKSTACKNODETYPEDT,STACKNODENEXTNULLM_DATADT,M_PNEXTNEXTPRIVATETYPEM_DATASTACKNODEM_PNEXTLINKSTACKHINCLUDE“STACKNODEH“TEMPLATECLASSLINKSTACKPUBLICLINKSTACKM_PTOPNULLLINKSTACKMAKEEMPTYPUBLICVOIDMAKEEMPTY/MAKETHESTACKEMPTYVOIDPUSHCONSTTYPEITEM/PUSHTHEDATATYPEPOP/POPTHEDATATYPEGETTOPCONST/GETTHEDATAVOIDPRINT/PRINTTHESTACKBOOLISEMPTYCONSTRETURNM_PTOPNULLPRIVATESTACKNODEM_PTOPTEMPLATEVOIDLINKSTACKMAKEEMPTYSTACKNODEPMOVEWHILEM_PTOPNULLPMOVEM_PTOPM_PTOPM_PTOPM_PNEXTDELETEPMOVETEMPLATEVOIDLINKSTACKPUSHCONSTTYPEITEMM_PTOPNEWSTACKNODEITEM,M_PTOPTEMPLATETYPELINKSTACKGETTOPCONSTIFISEMPTYCOUTM_DATATEMPLATETYPELINKSTACKPOPIFISEMPTYCOUTPDELM_PTOPM_PTOPM_PTOPM_PNEXTTYPETEMPPDELM_DATADELETEPDELRETURNTEMPTEMPLATEVOIDLINKSTACKPRINTSTACKNODEPMOVEM_PTOPCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTTOP“USINGNAMESPACESTDINCLUDE“LINKSTACKH“INTMAINLINKSTACKSTACKINTINIT101,3,5,7,4,2,8,0,6,9FORINTI0ICLASSSEQQUEUEPUBLICSEQQUEUEINTSZM_NREAR0,M_NFRONT0,M_NCOUNT0,M_NMAXSIZESZM_PELEMENTSNEWTYPESZIFM_PELEMENTSNULLCOUTVOIDSEQQUEUEMAKEEMPTYTHISM_NCOUNT0THISM_NFRONT0THISM_NREAR0TEMPLATEBOOLSEQQUEUEISEMPTYRETURNM_NCOUNT0TEMPLATEBOOLSEQQUEUEISFULLRETURNM_NCOUNTM_NMAXSIZETEMPLATEBOOLSEQQUEUEAPPENDCONSTTYPEITEMIFISFULLCOUTTYPESEQQUEUEDELETEIFISEMPTYCOUTTYPESEQQUEUEGETIFISEMPTYCOUTVOIDSEQQUEUEPRINTCOUT“REAR“USINGNAMESPACESTDINCLUDE“SEQQUEUEH“INTMAINSEQQUEUEQUEUE10INTINIT101,6,9,0,2,5,8,3,7,4FORINTI0ICLASSLINKQUEUETEMPLATECLASSQUEUENODEPRIVATEFRIENDCLASSLINKQUEUEQUEUENODECONSTTYPEITEM,QUEUENODENEXTNULLM_DATAITEM,M_PNEXTNEXTPRIVATETYPEM_DATAQUEUENODEM_PNEXTLINKQUEUEHINCLUDE“QUEUENODEH“TEMPLATECLASSLINKQUEUEPUBLICLINKQUEUEM_PREARNULL,M_PFRONTNULLLINKQUEUEMAKEEMPTYVOIDAPPENDCONSTTYPEITEM/INSERTDATATYPEDELETE/DELETEDATATYPEGETFRONT/GETDATAVOIDMAKEEMPTY/MAKETHEQUEUEEMPTYVOIDPRINT/PRINTTHEQUEUEBOOLISEMPTYCONSTRETURNM_PFRONTNULLPRIVATEQUEUENODEM_PREAR,M_PFRONTTEMPLATEVOIDLINKQUEUEMAKEEMPTYQUEUENODEPDELWHILEM_PFRONTPDELM_PFRONTM_PFRONTM_PFRONTM_PNEXTDELETEPDELTEMPLATEVOIDLINKQUEUEAPPENDCONSTTYPEITEMIFM_PFRONTNULLM_PFRONTM_PREARNEWQUEUENODEITEMELSEM_PREARM_PREARM_PNEXTNEWQUEUENODEITEMTEMPLATETYPELINKQUEUEDELETEIFISEMPTYCOUTPDELM_PFRONTTYPETEMPM_PFRONTM_DATAM_PFRONTM_PFRONTM_PNEXTDELETEPDELRETURNTEMPTEMPLATETYPELINKQUEUEGETFRONTIFISEMPTYCOUTM_DATATEMPLATEVOIDLINKQUEUEPRINTQUEUENODEPMOVEM_PFRONTCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTREAR“USINGNAMESPACESTDINCLUDE“LINKQUEUEH“INTMAINLINKQUEUEQUEUEINTINIT101,3,6,8,9,2,0,5,4,7FORINTI0ICLASSPRIORITYQUEUETEMPLATECLASSQUEUENODEPRIVATEFRIENDCLASSPRIORITYQUEUEQUEUENODECONSTTYPEITEM,QUEUENODENEXTNULLM_DATAITEM,M_PNEXTNEXTPRIVATETYPEM_DATAQUEUENODEM_PNEXTCOMPAREHTEMPLATECLASSCOMPARE/处理一般比较大小PUBLICSTATICBOOLLTTYPEITEM1,TYPEITEM2TEMPLATEBOOLCOMPARELTTYPEITEM1,TYPEITEM2RETURNITEM1CLASSPRIORITYQUEUE/CMPISDESIGNEDFORCOMPAREPUBLICPRIORITYQUEUEM_PREARNULL,M_PFRONTNULLPRIORITYQUEUEMAKEEMPTYVOIDMAKEEMPTY/MAKETHEQUEUEEMPTYVOIDAPPENDCONSTTYPEITEM/INSERTDATATYPEDELETE/DELETEDATATYPEGETFRONT/GETDATAVOIDPRINT/PRINTTHEQUEUEBOOLISEMPTYCONSTRETURNM_PFRONTNULLPRIVATEQUEUENODEM_PREAR,M_PFRONTTEMPLATEVOIDPRIORITYQUEUEMAKEEMPTYQUEUENODEPDELWHILEM_PFRONTPDELM_PFRONTM_PFRONTM_PFRONTM_PNEXTDELETEPDELTEMPLATEVOIDPRIORITYQUEUEAPPENDCONSTTYPEITEMIFM_PFRONTNULLM_PFRONTM_PREARNEWQUEUENODEITEMELSEM_PREARM_PREARM_PNEXTNEWQUEUENODEITEMTEMPLATETYPEPRIORITYQUEUEDELETEIFISEMPTYCOUTPDELM_PFRONT,PMOVEM_PFRONTWHILEPMOVEM_PNEXT/GETTHEMINIMIZEPRIORITYSDATA/CMPLTISUSEDFORCOMPARETHETWODATA,IFTHEFRONTONE/ISLESSTHANTHEBACK,THENRETURN1IFCMPLTPMOVEM_PNEXTM_DATA,PDELM_PNEXTM_DATAPDELPMOVEPMOVEPMOVEM_PNEXTPMOVEPDELPDELPDELM_PNEXTPMOVEM_PNEXTPDELM_PNEXTTYPETEMPPDELM_DATADELETEPDELRETURNTEMPTEMPLATETYPEPRIORITYQUEUEGETFRONTIFISEMPTYCOUTPDELM_PFRONT,PMOVEM_PFRONTM_PNEXTWHILEPMOVE/GETTHEMINIMIZEPRIORITYSDATAIFCMPLTPMOVEM_DATA,PDELM_DATAPDELPMOVEPMOVEPMOVEM_PNEXTRETURNPDELM_DATATEMPLATEVOIDPRIORITYQUEUEPRINTQUEUENODEPMOVEM_PFRONTCOUT“M_DATAPMOVEPMOVEM_PNEXTCOUTREAR“INCLUDEUSINGNAMESPACESTDINCLUDE“PRIORITYQUEUEH“INTMAINPRIORITYQUEUEQUEUEINTINIT101,9,3,5,0,8,2,4,6,7FORINTI0ISPE_QUEUEINTINIT25234,2,64,1,18,3,24,2,55,4SPECIALDATADATA5FORINTI0ICONSTCMYSTRINGCMP_STRCONSTBOOLOPERATORCONSTRETURNM_NCURLEN0CMYSTRINGCMYSTRINGCHARFRIENDOSTREAMPRIVATEVOIDNEXTPRIVATEINTM_NCURLENCHARM_PSTRINTM_PNEXTMYSTRINGCPPINCLUDEINCLUDEUSINGNAMESPACESTDINCLUDE“MYSTRINGH“CMYSTRINGCMYSTRING/CREATEEMPTYSTRINGM_PSTRNEWCHARMAXSIZE1IFM_PSTRCERRM_NCURLEN0M_PSTR00CMYSTRINGCMYSTRINGCONSTCHARINIT/INITIALIZETHESTRINGWITHCHARM_PSTRNEWCHARMAXSIZE1IFM_PSTRCERRM_NCURLENSTRLENINITSTRCPYM_PSTR,INITCMYSTRINGCMYSTRINGCONSTCMYSTRINGIFM_PSTRCERRM_NCURLENCOPYM_NCURLENSTRCPYM_PSTR,COPYM_PSTRINTCMYSTRINGFINDCMYSTRINGPARTCONST/STRINGMATCHKMPINTPOSP0,POST0INTLENGTHPPARTM_NCURLEN,LENGTHTTHISM_NCURLENPARTNEXTWHILEPOSPM_PSTRPOSTPOSPPOSTELSEIFPOSP0POSTELSEPOSPPARTM_PNEXTPOSP1DELETEPARTM_PNEXTIFPOSPM_NCURLENTHISM_PNEXTNEWINTLENGTHTHISM_PNEXT00FORINTI1IM_PNEXTI1WHILETHISM_PSTRITHISM_PSTRJIFTHISM_PSTRITHISM_PSTRJTHISM_PNEXTIJ1ELSETHISM_PNEXTI0/FORINTI0IM_PSTRCMYSTRINGIFPOSMAXSIZE|LENM_NCURLEN0TEMPM_PSTR00ELSEIFPOSLEN1M_NCURLENLENM_NCURLENPOSTEMPM_NCURLENLENFORINTI0,JPOSIM_PSTRIM_PSTRJTEMPM_PSTRLEN0RETURNTEMPBOOLCMYSTRINGOPERATORCONSTCMYSTRINGCMP_STRCONSTIFTHISM_NCURLENCMP_STRM_NCURLENRETURN0FORINTI0IM_NCURLENIIFTHISM_PSTRICMP_STRM_PSTRIRETURN0RETURN1BOOLCMYSTRINGOPERATORCONSTCMYSTRINGCMP_STRCONSTIFTHISCMP_STRRETURN0RETURN1BOOLCMYSTRINGOPERATORM_NCURLENCMP_STRM_NCURLENRETURNTHISM_NCURLENM_NCURLENIIFTHISM_PSTRICMP_STRM_PSTRIRETURNTHISM_PNEXTICONSTCMYSTRINGCMP_STRCONSTIFTHISM_PSTRTHISM_PSTRNEWCHARCOPYM_NCURLEN1STRCPYTHISM_PSTR,COPYM_PSTRRETURNTHISCMYSTRINGINTNTHISM_NCURLENCMYSTRINGTEMPTHISDELETETHISM_PSTRTHISM_PSTRNEWCHARLENGTH1FORINTI0IM_PSTRITEMPIFORINTINIM_PSTRIADDM_PSTRINTHISM_PSTRLENGTH0RETURNTHISCHAROSTREAMRETURNISTESTCPPINCLUDEUSINGNAMESPACESTDINCLUDE“MYSTRINGH“INTMAINCMYSTRINGTEST1“BABC“CMYSTRINGTEST2“ABABABCDEFB“COUTTEST2COUT“CLASSBINARYTREETEMPLATECLASSBINTREENODEPUBLICFRIENDCLASSBINARYTREEBINTREENODEM_PLEFTNULL,M_PRIGHTNULLBINTREENODETYPEITEM,BINTREENODELEFTNULL,BINTREENODERIGHTNULLM_DATAITEM,M_PLEFTLEFT,M_PRIGHTRIGHTTYPEGETDATACONST/GETTHDDATABINTREENODEGETLEFTCONST/GETTHELEFTNODEBINTREENODEGETRIGHTCONST/GETTHERIGHTNODEVOIDSETDATACONSTTYPEDATA/CHANGETHEDATAVOIDSETLEFTCONSTBINTREENODELEFT/CHANGETHDLEFTNODEVOIDSETRIGHTCONSTBINTREENODERIGHT/CHANGETHERIGHTNODEVOIDINORDER/INORDERTHETREEWITHTHEROOTOFTHENODEVOIDPREORDER/PERORDERTHETREEWITHTHEROOTOFTHENODEVOIDPOSTORDER/POSTODERTHETREEWITHTHEROOTOFTHENODEINTSIZE/GETSIZEINTHEIGHT/GETHEIGHTBINTREENODECOPYCONSTBINTREENODECOPY/COPYTHENODEVOIDDESTROY/DESTROYTHETREEWITHTHEROOTOFTHENODEIFTHISNULLTHISM_PLEFTDESTROYTHISM_PRIGHTDESTROYDELETETHISFRIENDBOOLEQUALCONSTBINTREENODES,CONSTBINTREENODET/ISEQUALPRIVATEBINTREENODEM_PLEFT,M_PRIGHTTYPEM_DATATEMPLATETYPEBINTREENODEGETDATACONSTRETURNTHISNULLM_DATA1TEMPLATEBINTREENODEBINTREENODEGETLEFTCONSTRETURNTHISNULLM_PLEFTNULLTEMPLATEBINTREENODEBINTREENODEGETRIGHTCONSTRETURNTHISNULLM_PRIGHTNULLTEMPLATEVOIDBINTREENODESETDATACONSTTYPEDATAIFTHISNULLM_DATADATATEMPLATEVOIDBINTREENODESETLEFTCONSTBINTREENODELEFTIFTHISNULLM_PLEFTLEFTTEMPLATEVOIDBINTREENODESETRIGHTCONSTBINTREENODERIGHTIFTHISNULLM_PRIGHTRIGHTTEMPLATEBINTREENODEBINTREENODECOPYCONSTBINTREENODECOPYIFCOPYNULLRETURNNULLBINTREENODETEMPNEWBINTREENODECOPYM_DATATEMPM_PLEFTCOPYCOPYM_PLEFTTEMPM_PRIGHTCOPYCOPYM_PRIGHTRETURNTEMPTEMPLATEBOOLEQUALCONSTBINTREENODES,CONSTBINTREENODETIFSNULLIFSRETURN0TEMPLATEVOIDBINTREENODEINORDERIFTHISNULLTHISM_PLEFTINORDERCOUT“M_DATATHISM_PRIGHTINORDERTEMPLATEVOIDBINTREENODEPREORDERIFTHISNULLCOUT“M_DATATHISM_PLEFTPREORDERTHISM_PRIGHTPREORDERTEMPLATEVOIDBINTREENODEPOSTORDERIFTHISNULLTHISM_PLEFTPOSTORDERTHISM_PRIGHTPOSTORDERCOUT“M_DATATEMPLATEINTBINTREENODESIZEIFTHISNULLRETURN0RETURN1THISM_PLEFTSIZETHISM_PRIGHTSIZETEMPLATEINTBINTREENODEHEIGHTIFTHISNULLRETURN1INTLHEIGHT,RHEIGHTLHEIGHTTHISM_PLEFTHEIGHTRHEIGHTTHISM_PRIGHTHEIGHTRETURN1LHEIGHTRHEIGHTLHEIGHTRHEIGHTBINARYTREEHINCLUDE“BINTREENODEH“TEMPLATECLASSBINARYTREEPUBLICBINARYTREEM_PROOTNULLBINARYTREECONSTTYPESTOPM_STOPSTOP,M_PROOTNULLBINARYTREEBINARYTREEVIRTUALBINARYTREEM_PROOTDESTROYVIRTUALBOOLISEMPTY/ISEMPTYRETURNM_PROOTNULLVIRTUALBINTREENODEGETLEFTBINTREENODECURRENT/GETTHELEFTNODEVIRTUALBINTREENODEGETRIGHTBINTREENODECURRENT/GETTHERIGHTNODEVIRTUALBINTREENODEGETPARENTBINTREENODECURRENT/GHETHDPARENTCONSTBINTREENODEGETROOTCONST/GETROOTVIRTUALBOOLINSERTCONSTTYPEITEM/INSERTANEWNODEVIRTUALBINTREENODEFINDCONSTTYPEITEMCONST/FINDTHDNODEWITHTHEDATAVOIDINORDERVOIDPREORDERVOIDPOSTORDERINTSIZE/GETSIZEINTHEIGHT/GETHEIGHTBINARYTREE/EVALUATENODEFRIENDBOOLOPERATORCONSTBINARYTREES,CONSTBINARYTREET/ISEQUALFRIENDOSTREAM/OUTPUTTHEDATAFRIENDISTREAM/INPUTTHEDATAPRIVATETYPEM_STOP/JUSTUSINGFORINPUTTHEDATABINTREENODEM_PROOT/FINDTHEPARENTOFCURRENTINTHETREEWITHTHEROOTOFSTARTBINTREENODEGETPARENTBINTREENODESTART,BINTREENODECURRENTVOIDPRINTBINTREENODESTART,INTN0/PRINTTHETREEWITHTHEROOTOFSTARTTEMPLATEBINARYTREEBINARYTREEBINARYTREEM_PROOTM_PROOTCOPYCOPYM_PROOTTEMPLATEBINTREENODEBINARYTREEGETLEFTBINTREENODECURRENTRETURNM_PROOTTEMPLATEBINTREENODEBINARYTREEGETRIGHTBINTREENODECURRENTRETURNM_PROOTTEMPLATECONSTBINTREENODEBINARYTREEGETROOTCONSTRETURNM_PROOTTEMPLATEBINTREENODEBINARYTREEGETPARENTBINTREENODESTART,BINTREENODECURRENTIFSTARTNULL|CURRENTNULLRETURNNULLIFSTARTM_PLEFTCURRENT|STARTM_PRIGHTCURRENTRETURNSTARTBINTREENODEPMOVEIFPMOVEGETPARENTSTARTM_PLEFT,CURRENTNULL/FINDTHEPARENTINTHELEFTSUBTREERETURNPMOVEELSERETURNGETPARENTSTARTM_PRIGHT,CURRENT/FINDTHEPARENTINTHERIGHTSUBTREETEMPLATEBINTREENODEBINARYTREEGETPARENTBINTREENODECURRENTRETURNM_PROOTNULL|CURRENTM_PROOTNULLGETPARENTM_PROOT,CURRENTTEMPLATEBOOLBINARYTREEINSERTCONSTTYPEITEMBINTREENODEPSTARTM_PROOT,NEWNODENEWBINTREENODEITEMIFM_PROOTNULLM_PROOTNEWNODERETURN1WHILE1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 移动基站场地租赁与通信基站信号覆盖扩展服务合同
- 离异双方财产分割及债务清偿确认合同
- 2025重庆市忠县事业单位应届毕业公费师范生、服务期满且考核合格“特岗计划”教师考核招聘工作人员94人笔试含答案
- 智能家居项目股权转让合同范本
- 犬只咬人赔偿协议范本:事故处理与赔偿方案制定
- 国际金融衍生品交易合同范本:外汇期权交易合同
- 经常项目外汇业务及涉外收支交易申报知识测试卷
- 2025年骨科手术技巧操作实验评估试卷答案及解析
- 18《刘胡兰》教学设计-2024-2025学年二年级上册语文统编版
- 盆底康复情景剧
- 脑卒中健康与随访管理制度
- 非煤矿山安全事件案例
- 主动脉夹层手术室
- 《点亮小灯泡》公开课课件
- 基于PLC的恒压供水控制系统的设计-毕业论文
- AIGC时代,HR如何用AI提升招聘效率
- 《射频通信全链路系统设计》 课件 第3、4章 射频收发机架构、射频通信接收机设计
- 2024-2025学年四川省成都市嘉祥外国语高级中学高一(上)段考数学试卷(10月份)(含答案)
- 学术英语智慧树知到答案2024年南开大学
- 机电一体化职业技能大赛试题及答案
- 2025中国新厨电白皮书
评论
0/150
提交评论