已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,Chapter8searchtrees,BinarysearchtreesandAVLtrees8-1BinarysearchtreesProblem:Storeordereddatainanarraystructure:efficientsearchalgorithm,inefficientinsertionanddeletionLinkedlist:efficientinsertionanddeletion,inefficientsearchBinarysearchtreescansatisfybothofthemDefinition:thepropertiesofabinarysearchtreeAllitemsintheleftsubtreearelessthantherootAllitemsintherightsubtreearegreaterthanorequaltotherootEachsubtreeisitselfabinarysearchtree.,.,Operationsonbinarysearchtrees,binarysearchtreetraversalsAlgorithmsareidenticaltotheonesinchapter7,binarysearchtreesearchalgorithmsFindsmallestnodeFindlargestnodeFindrequestednode,FollowtheleftbranchesuntilwegettoaleafAlgorithmfindsmallestBST(valroot)TofindthesmallestnodeinaBSTPrerootisapointertoanonemptyBSTorsubtreeReturnaddressofsmallestnode1if(root-leftnull)1return(root)2endif3returnfindsmallestBST(root-left)endfindsmallestBST,FollowtherightbranchestothelastnodeinthetreeAlgorithmfindlargestBST(valroot)TofindthelargestnodeinaBSTPrerootisapointertoanonemptyBSTorsubtreeReturnaddressoflargestnode1if(root-rightnull)1return(root)2endif3returnfindlargestBST(root-right)endfindlargestBST,Assume:TofindT,ComparingTwithroot,TrootgorightAlgorithmsearchBST(valroot,valargument)SearchabinarysearchtreeforagivenvaluePrerootistheroottoabinarytreeorsubtreeargumentisthekeyvaluerequestedReturnthenodeaddressifthevalueisfoundNullifthenodeisnotinthetree1if(rootisnull)1returnnull2endif3if(argumentkey)1returnsearchBST(root-left,argument)4elseif(argumentroot-key)1returnsearchBST(root-right,argument)5else1returnroot6endifendsearchBST,.,Insertnode,Steps:1.Followthebranchestoanemptysubtree2.InsertthenewnodeAllinsertstakeplaceataleaforaleaflikenodethathasonlyonenullbranch,Note:nodewithequalvaluesarefoundintherightsubtree,.,Iterativeinsert(algorithm),1if(rootisnull)1root=new2else1pwalk=root2loop(pwalknotnull)1parent=pwalk2if(new-keykey)1pwalk=pwalk-left3else1pwalk=pwalk-right4endif3endloopLocationfornewnodefound4if(new-keykey)1parent-left=new5else1parent-right=new6endif3endif4returnendinsertBST,AlgorithminsertBST(refroot,valnew)InsertnodecontainingnewdataintoBSTusingiterationPrerootisaddressoffirstnodeinaBSTnewisaddressofnodecontainingdatatobeinsertedPostnewnodeinsertedintothetree,Algorithm8-4iterativebinarysearchtreeinsert,.,Recursiveinsertnode(algorithm),AlgorithmaddBST(refroot,valnew)InsertnodecontainingnewdataintoBSTusingrecursionPrerootisaddressofcurrentnodeinaBSTnewisaddressofnodecontainingdatatobeinsertedPostnewnodeinsertedintothetree1if(rootisnull)1root=new2elselocatenullsubtreeforinsertion1if(new-keykey)1addBST(root-left,new)2else1addBST(root-right,new)3endif3endif4returnendinsertBSTalgorithm8-5addnodetoBSTrecursively,.,Deletenode,1.locateit2.delete:thereare4possiblecasesThenodehasnochildren:setthedeletenodesparenttonull,recycleitsmemory,andreturnHasonlyarightsubtree:attachtherightsubtreetothedeletenodesparentandrecycleitsmemory.Hasonlyaleftsubtree:attachtheleftsubtreetothedeletenodesparentandrecycleitsmemory.Hastwosubtree:todeleteanodefromthemiddleofatree,tokeepthebalance,wemustfindanode,twoways:Findthelargestnodeinthedeletednodesleftsubtree,moveitsdatatoreplacethedeletednodesdataFindthesmallestnodeinthedeletednodesrightsubtree,moveitsdatatoreplacethedeletednodesdataRegardlessofwhichlogicweuse,wewillbemovingdatafromaleaforleaflikenodethatcanbedeleted.,.,.,1if(rootisnull)1returnfalse2endif3if(dltkeydata.key)1returndeleteBST(root-left,dltkey)4elseif(dltkeyroot-data.key)1returndeleteBST(root-right,dltkey)5else/deletenodefoundtestforleafnode1if(root-leftnull)1dltptr=root2root=root-right3recycle(dltptr)4returntrue2elseif(root-rightnull)1dltptr=root2root=root-left3recycle(dltptr)4returntrue3else/nodetobedeletednotaleaf(orleaflike),findlargestnodeonleftsubtree1dltptr=root-left2loop(dltptr-rightnotnull)1dltptr=dltptr-right/nodefound,movedataanddeleteleafnode3root-data=dltptr-data4returndeleteBST(root-left,dltptr-data.key)4endif6endifenddeleteBST,AlgorithmdeleteBST(refroot,valdltKey)DeleteanodefromaBSTPrerootispointe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 庆城县职中开学通知书
- 府谷县封控演练通知书
- 建设用地规划条件通知书
- 开发商暂停收费通知书
- 开展合规检查处罚通知书
- 开福区解封文件通知书
- 张官营镇停水通知书
- 张沟社区封村通知书
- 彩云北路停电通知书
- 征兵适龄青少年应征通知书
- 标准劳动合同解除协议范本
- 矿山隐蔽致灾因素普查规范讲解
- 基于碳基纳米材料的铅蓄电池电极性能优化与调控-洞察及研究
- 2025年“才聚齐鲁成就未来”山东钢铁集团有限公司社会招聘13人笔试历年参考题库附带答案详解
- 四川省公需科目(超全):2025年度四川省专业技术人员继续教育考试题库
- 高考作文指导:理顺说理逻辑增强议论文生命力 课件(47张PPT)
- 《普通高中英语课程标准版》
- 国家开放大学人文英语4 unit1~8边学边练答案完整版
- 直流充电桩出厂检验报告
- 风电项目开发流程
- MCN机构与抖音达人签约协议
评论
0/150
提交评论