已阅读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年秋人教版小学数学六年级上册期末质量检测试卷及参考答案
- 地质雷达图像拼接算法创新创业项目商业计划书
- 天津市教育招生考试院信息化软硬件购置项目采购需求
- 2025年电影产业数字化粉丝经济运营岗位晋升考核试卷
- 大数据技术在经济责任审计中的应用与实践
- 2025年阿拉善盟辅警招聘考试题库及答案详解(名师系列)
- 2025年淮安辅警协警招聘考试备考题库附答案详解(夺分金卷)
- 2025年集团公司资金集中管理办法
- 标准劳动合同解除协议范本
- 矿山隐蔽致灾因素普查规范讲解
- 基于碳基纳米材料的铅蓄电池电极性能优化与调控-洞察及研究
- 2025新疆交通投资(集团)有限责任公司所属公司招聘26人笔试历年典型考点题库附带答案详解2套试卷
- 2025年“才聚齐鲁成就未来”山东钢铁集团有限公司社会招聘13人笔试历年参考题库附带答案详解
- 2025年新三类人员安全员c证继续教育考试题库及答案
- 2025浙江台州市信保基金融资担保有限责任公司招聘10人笔试历年参考题库附带答案详解
- 企业危机管理中的社会责任与可持续发展研究-洞察及研究
- 幼儿园童话故事表演《丑小鸭》课件
- 2025年风力发电机叶片维护与性能提升可行性分析报告
评论
0/150
提交评论