电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java刪除二叉搜索樹最大元素和最小元素的方法詳解

瀏覽:87日期:2022-09-03 15:58:44

本文實例講述了Java刪除二叉搜索樹最大元素和最小元素的方法。分享給大家供大家參考,具體如下:

在前面一篇《Java二叉搜索樹遍歷操作》中完成了樹的遍歷,這一節(jié)中將對如何從二叉搜索樹中刪除最大元素和最小元素做介紹:我們要想刪除二分搜索樹的最小值和最大值,就需要先找到二分搜索樹的最小值和最大值,其實也還是很容易的,因為根據(jù)二叉搜索樹的特點,它的左子樹一定比當(dāng)前節(jié)點要小,所以二叉搜索樹的最小值一定是左子樹一直往下走,一直走到底。同樣在二叉搜索樹中,右子樹節(jié)點值,一定比當(dāng)前節(jié)點要大,所以右子樹一直往下走,就一定是最大值。

注意向左走一直到走不動并不是一定要達(dá)到葉子節(jié)點,只用達(dá)到走不動為止,看下圖的例子:

Java刪除二叉搜索樹最大元素和最小元素的方法詳解

向左走到16就走不動了,但是16下面還有元素。

一、查詢操作

1.1 查詢二分搜索樹的最小節(jié)點

// 尋找二分搜索樹的最小元素 public E minimum() { if (size == 0) { throw new IllegalArgumentException('BST is empty'); } Node ninNode = minimum(root); return ninNode.e; } // 返回以node為根的二分搜索樹的最小值所在的節(jié)點 private Node minimum(Node node) { if (node.left == null) { return node; } //返回相應(yīng)的節(jié)點的左子樹的最小值 return minimum(node.left); }

1.2 查詢二分搜索樹的最大節(jié)點

// 尋找二分搜索樹的最大元素 public E maxmum() { if (size == 0) throw new IllegalArgumentException('BST is empty'); Node maxNode = maxmum(root); return maxNode.e; } // 返回以node為根的二分搜索樹的最大值所在的節(jié)點 private Node maxmum(Node node) { if (node.right == null) { return node; } return maxmum(node.right); }二、刪除操作

刪除最小值的思路:1)如果要刪除的節(jié)點是葉子節(jié)點,那么直接刪除2)如果要刪除的節(jié)點下面有右子樹,那么只用將其下的右子樹整體上移成為上一個節(jié)點的左子樹即可

Java刪除二叉搜索樹最大元素和最小元素的方法詳解

當(dāng)刪除22這個節(jié)點后,把33這個節(jié)點及其以下的子樹變成41節(jié)點的左子樹即可。

2.1 刪除最小值

public E removeMin() { E ret = minimum();//獲取最小元素 root = removeMin(root); return ret; } // 刪除掉以node為根的二分搜索樹中的最小節(jié)點 // 返回刪除節(jié)點后新的二分搜索樹的根 private Node removeMin(Node node) { // 遞歸的終止條件,當(dāng)前節(jié)點沒有左子樹了,那么就是最小節(jié)點了 // 如果是最小節(jié)點,我們要做的是刪除當(dāng)前節(jié)點,但是當(dāng)前節(jié)點很可能是有右子樹的 // 我們先把該節(jié)點的右子樹節(jié)點保存,然后就刪除掉該右子樹節(jié)點,最后把右子樹節(jié)點返回即可 if (node.left == null) { Node rightNode = node.right; node.right = null; //左節(jié)點為空了,讓右子樹也為空,相當(dāng)于脫離了樹 size--; return rightNode;//返回右子樹是為了后面的綁定操作 } // 沒有遞歸到底的情況,那么就遞歸調(diào)用其左子樹,這個調(diào)用的過程會返回被刪除節(jié)點的右子樹, //將返回的右子樹重新綁定到上一層的node的左節(jié)點上就相當(dāng)于徹底刪除了那個元素 node.left = removeMin(node.left); return node;// 刪除后,根節(jié)點依然是node,返回即可 }2.2 刪除最大值

// 從二分搜索樹中刪除最大值所在節(jié)點 public E removeMax() { E ret = maxmum(); root = removeMax(root); return ret; } // 刪除掉以node為根的二分搜索樹中的最大節(jié)點 // 返回刪除節(jié)點后新的二分搜索樹的根 private Node removeMax(Node node) { if (node.right == null) { Node leftNode = node.left; node.left = null; size--; return leftNode; } node.right = removeMax(node.right);//等號'='左邊的相當(dāng)于上一次的right,右邊相當(dāng)于下一次返回的結(jié)果 return node; }

源碼地址 https://github.com/FelixBin/dataStructure/blob/master/src/BST/BST.java

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計有所幫助。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 无缝钢管-聊城无缝钢管-小口径无缝钢管-大口径无缝钢管 - 聊城宽达钢管有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | Duoguan 夺冠集团| 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 昊宇水工|河北昊宇水工机械工程有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 |