真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中怎么實現(xiàn)二叉樹刪除

Java中怎么實現(xiàn) 二叉樹刪除,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

雙牌ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!


  二叉樹刪除要分為三種情況。
  第一種:如果為葉子結(jié)點,則可以直接刪除,如圖一。


Java中怎么實現(xiàn) 二叉樹刪除


第二種:如果只有左子樹或者只有右子樹的時候,只要令其左子樹或右子樹為其父節(jié)點的左子樹或右子樹即可,如圖二。


Java中怎么實現(xiàn) 二叉樹刪除


第三種:如果節(jié)點既有左節(jié)點,又有右節(jié)點,則我們需要先用中序序列中節(jié)點的前驅(qū)或后序替換該節(jié)點,然后刪除其前驅(qū)或后序節(jié)點。此時該節(jié)點的前驅(qū)或后序節(jié)點必然是沒有右孩子或者左孩子的節(jié)點,刪除方法可以參照第二種,如圖三。


Java中怎么實現(xiàn) 二叉樹刪除


輸入:待刪除元素ele
輸出:在二叉查找樹中刪除ele
代碼:

public Object remove(Object ele){
    BinTreeNode v = (BinTreeNode)binTSearch(root,ele);if (v==null) return null; //查找失敗BinTreeNode del = null; //待刪結(jié)點BinTreeNode subT = null; //待刪結(jié)點的子樹if (!v.hasLChild()||!v.hasRChild()) //確定待刪結(jié)點del = v;else{
        del = getPredecessor(v);
        Object old = v.getData();
        v.setData(del.getData());
        del.setData(old);
    }
    startBN = del.getParent(); //待平衡出發(fā)點 *//此時待刪結(jié)點只有左子樹或右子樹if (del.hasLChild())
        subT = del.getLChild();elsesubT = del.getRChild();if (del==root) { //若待刪結(jié)點為根if (subT!=null) subT.sever();
        root = subT;
    } elseif (subT!=null){//del為非葉子結(jié)點if (del.isLChild()) del.getParent().setLChild(subT);else del.getParent().setRChild(subT);
    }else//del為葉子結(jié)點del.sever();return del.getData();
}

看完上述內(nèi)容,你們掌握J(rèn)ava中怎么實現(xiàn) 二叉樹刪除的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文名稱:Java中怎么實現(xiàn)二叉樹刪除
轉(zhuǎn)載源于:http://weahome.cn/article/pipiji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部