最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用歸并刪除法刪除二叉樹中節(jié)點(diǎn)的方法

 更新時(shí)間:2015年05月30日 15:57:34   作者:hitxueliang  
這篇文章主要介紹了java使用歸并刪除法刪除二叉樹中節(jié)點(diǎn)的方法,實(shí)例分析了java二叉樹算法的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了java使用歸并刪除法刪除二叉樹中節(jié)點(diǎn)的方法。分享給大家供大家參考。具體分析如下:

實(shí)現(xiàn)的思想很簡單:

first:找到要?jiǎng)h除的節(jié)點(diǎn)
second:如果刪除的節(jié)點(diǎn)沒有右子樹那么左子樹鏈到父節(jié)點(diǎn)
third:如果刪除的節(jié)點(diǎn)沒有左子樹那么右子樹鏈到父節(jié)點(diǎn)
forth:如果刪除的節(jié)點(diǎn)又左右孩子,那么可以歸并刪除節(jié)點(diǎn)后的子樹:方法有兩種一種是用刪除節(jié)點(diǎn)的左子樹的最右節(jié)點(diǎn),指向刪除節(jié)點(diǎn)的右子樹,另一種是用刪除節(jié)點(diǎn)的用字?jǐn)?shù)的最左節(jié)點(diǎn)指向刪除節(jié)點(diǎn)的左子樹。

Java 實(shí)現(xiàn)如下:

public void deleteByMerging(int el)
{
IntBSTNode tmp,node,p=root,prev=null;
/*find the node to be deleted*/
while(p!=null&&p.key!=el)
{
prev=p;
if(p.key<el)
p=p.right;
else p=p.left;
}
/*find end*/
node=p;
if(p!=null&&p.key==el)
{
if(node.right==null)
//node has no right child then its left child (if any) is attached to 
node=node.left;
//its parent
  else if(node.left==null)
  //node has no left child then its right child (if any) is attched to
  node=node.right
  //its parent
else{
tmp=node.left;  
while(tmp.right!=null)
tmp=tmp.right;
//find the rightmost node of the left subtree
tem.right=node.right;
//establish the link between the rightmost node of the left subtree and the right subtree
node=node.left;
}
if(p==root)
{
root=node;
}
else if (prev.left==p)
{
prev.left=node;
}
else prev.right=node
}
else if(root!=null)
  {
System.out.println("the node is not in the tree");
}
else System.out.println("The tree is empty");
}

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

相關(guān)文章

  • 前置++和后置++ 運(yùn)算的詳解及實(shí)例代碼

    前置++和后置++ 運(yùn)算的詳解及實(shí)例代碼

    這篇文章主要介紹了前置++和后置++ 的相關(guān)資料,并附示例代碼,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2016-09-09
  • Java中動(dòng)態(tài)規(guī)則的實(shí)現(xiàn)方式示例詳解

    Java中動(dòng)態(tài)規(guī)則的實(shí)現(xiàn)方式示例詳解

    這篇文章主要介紹了Java中動(dòng)態(tài)規(guī)則的實(shí)現(xiàn)方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringMVC的處理器攔截器HandlerInterceptor詳解

    SpringMVC的處理器攔截器HandlerInterceptor詳解

    這篇文章主要介紹了SpringMVC的處理器攔截器HandlerInterceptor詳解,SpringWebMVC的處理器攔截器,類似于Servlet開發(fā)中的過濾器Filter,用于處理器進(jìn)行預(yù)處理和后處理,需要的朋友可以參考下
    2024-01-01
  • 部署springboot打包不打包配置文件,配置文件為外部配置文件使用詳解

    部署springboot打包不打包配置文件,配置文件為外部配置文件使用詳解

    在Spring Boot項(xiàng)目中,將配置文件排除在jar包之外,通過外部配置文件來管理不同環(huán)境的配置,可以實(shí)現(xiàn)靈活的配置管理,在pom.xml文件中添加相關(guān)配置,打包時(shí)忽略指定文件,運(yùn)行時(shí)在jar包同級(jí)目錄下創(chuàng)建config文件夾,將配置文件放入其中即可
    2025-02-02
  • Java中Json解析的方法分析

    Java中Json解析的方法分析

    這篇文章主要介紹了Java中Json解析的方法,結(jié)合實(shí)例形式分析了java針對(duì)json格式數(shù)據(jù)的解析實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • JAVA中阻止類的繼承(官方和非官方)

    JAVA中阻止類的繼承(官方和非官方)

    在面向?qū)ο蟮睦碚撝? 有一些方案要求你用一個(gè)辦法來聲明一個(gè)不可繼承的類。一般而言,如果類提供的功能不應(yīng)該被改變,或者更恰當(dāng)?shù)恼f,是被覆蓋(override)的時(shí)候才會(huì)出現(xiàn)這種情況。在這篇文章里,我討論在JAVA語言中的實(shí)現(xiàn)辦法--官方和非官方的辦法
    2014-01-01
  • java 獲取數(shù)據(jù)庫連接的實(shí)現(xiàn)代碼

    java 獲取數(shù)據(jù)庫連接的實(shí)現(xiàn)代碼

    本篇文章是對(duì)在java中獲取數(shù)據(jù)庫連接的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • SpringBoot之核心依賴和自動(dòng)配置方式

    SpringBoot之核心依賴和自動(dòng)配置方式

    這篇文章主要介紹了SpringBoot之核心依賴和自動(dòng)配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java中Optional.of()方法及源碼解析(非常詳細(xì)!)

    Java中Optional.of()方法及源碼解析(非常詳細(xì)!)

    這篇文章主要給大家介紹了關(guān)于Java中Optional.of()方法及源碼解析的相關(guān)資料,Java中java.util .Optional類的of()方法用于獲得該Optional類中具有指定類型的指定值的一個(gè)實(shí)例,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 淺談java繼承中是否創(chuàng)建父類對(duì)象

    淺談java繼承中是否創(chuàng)建父類對(duì)象

    下面小編就為大家?guī)硪黄獪\談java繼承中是否創(chuàng)建父類對(duì)象。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06

最新評(píng)論

焦作市| 玉屏| 宜宾市| 高淳县| 彭水| 绍兴县| 南溪县| 神木县| 遂川县| 青冈县| 古交市| 长宁区| 德化县| 红安县| 华亭县| 通江县| 卓资县| 霍林郭勒市| 祁门县| 德庆县| 阿拉善左旗| 乌兰浩特市| 万年县| 安义县| 伽师县| 淄博市| 道孚县| 随州市| 惠安县| 乡城县| 禄劝| 景德镇市| 蒙自县| 大城县| 高邮市| 河北省| 保德县| 苍南县| 油尖旺区| 顺昌县| 湖南省|