簡體   English   中英

了解帶有遞歸調用的二分搜索樹(BST)刪除實現

[英]Understanding binary-search-tree (BST) delete implementation with recursive calls

我在理解如何在BST中實現刪除操作時遇到了一些麻煩。 我可以很輕松地實現find()insert() ,並了解發生了什么,但是在delete方面遇到了麻煩。

據我了解,刪除過程涉及更新我們要刪除的節點的父對象的右或左引用(取決於),以引用null或要刪除的節點的子對象(當要刪除的節點有一個孩子時),或用其順序后繼者替換它(當要刪除的節點有2個子節點時)。

在這里看到的大多數實現都像Java 似乎以不需要顯式父引用的方式使用遞歸。 我認為這是我一直感到困惑的地方。

誰能解釋這里的遞歸調用如何工作以及如何實現?

在該鏈接中,遞歸用於查找鍵,同時保留父節點對節點的引用,因為它返回將替換將要刪除的節點的相關節點。 它還會使用重復操作“刪除”其節點以替換原始節點,從而避免重復。

希望這會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM