嚴蔚敏版本的資料結構中的二叉排序樹中刪除節點時重接Q的左右子樹的方法為何有選擇語句

時間 2021-09-15 00:10:59

1樓:濮方雅

因為有可能該刪除的節點下面的左子樹沒有右子樹的情況。如下(其中o是待刪除的節點,o 下面有左右子樹l、r,但l下面沒有右子樹,這種情況下,直接把l的左子樹,也就是a提上來即可)

--------a

2樓:匿名使用者

在點p的左右子樹同時存在時,程式要用左子樹中的最大的元素,即p的左子樹中最右邊的元素替代p。while迴圈的用途就是找到這個最右邊的元素。但是這個元素可能是p的左孩子本身,即p的左孩子沒有右子樹。

這種情況下,q與p均指向需要刪除的節點,這個結點已經複製了其左孩子s的值,所以刪除節點s即可。**中第一行紅線處理的是p的左孩子有右子樹的情況,而第二行處理的是沒有右子樹的情況。

資料結構中樹與二叉樹的區別在於,資料結構中,圖與樹,二叉樹比線性表有什麼優點

凱凱 二叉樹是指乙個樹的父節點最多只有兩個子節點構成的樹,樹是不限制子節點的個數的。二叉樹是樹的一種特例,是樹的子集。三個節點是無法表示出二叉樹和樹的區別的,需要三個以上的節點。二叉樹的表示如下圖。樹的表示如下圖。擴充套件資料 樹圖是一種資料結構,由n n 1 個有限節點組成具有層次關係的集合。它被...

平衡二叉樹的問題,平衡二叉樹 資料結構問題? 50

圭旻陰安夢 這個問題的中文意思是 任何一個平衡二叉樹,如果它總共有16個結點,那麼它的 最大 深度是多少?解答 我用星號表示結點 平衡二叉樹是這樣的二叉樹 它的左右子樹都是平衡二叉樹,且兩者深度之差不超過1 圖1每個父結點度有左右兩個子結點 答案 a 1.平衡二叉樹解決的是動態問題,靜態的查詢無需平...

(C語言)關於二叉排序樹的建立和查詢

include include typedef struct np node node create void node t node a,int d else if d a dat else if ddat return a void inorder node r int ser node so,...