資料結構中查詢二叉樹刪除結點的疑問

時間 2025-01-14 00:55:17

1樓:巖壹明

你給的例子本來就不是一棵二叉查詢樹,10本來就比40小,是不允許放到40的右子樹上的的,二叉查詢樹的每棵子樹都要求是二叉查詢樹。

課本上講的應該是對的,只不過你的樹不是二叉查詢樹。

2樓:網友

教程是對的。是你的二叉排序樹錯了,正確的圖應該如下。請再按照教程的結論做刪除節點的操作來驗證一下,結論一定是成立的。(而你所給的二叉樹並非二叉排序樹)

3樓:雅虎老總

你的這棵樹是錯的 應為 10 小於 20 你卻 把10 放在了 20的右邊。

這才是查詢樹。

在排序裡有個堆排序 那裡面有你疑惑的解法。

例如 你刪50 (堆排序中最大會與跟節點換)10就會上去 在與20交換。

但是你這棵樹本來就不是 查詢樹 所以就不能談 你得問題是對還是錯其實資料結構 選教材非常重要 所以多搞幾本書找適合自己的 我是自學的 以前買了人們都說好的 嚴蔚敏得 但是我卻看不懂 後來買了一本 水利出得 非常好 呵呵 個人經驗問題 教材很重要 要適合自己的才是好書 呵呵。

資料結構與演算法:二叉樹的增刪改查

4樓:亞浩科技

本篇我們繼續 探索 二叉樹的增刪改查

常見的二叉樹遍歷方式有三種:前序遍歷、中序遍歷和後序遍歷

這裡的前、中、後是相對於根節點來說的。

前序遍歷:指從根節點開始,優先遍歷左側子樹,然後遍歷右側子樹。

中序遍歷:指從左子樹開始遍歷,然後經過根節點,最後遍歷右子樹。

後序遍歷:指從左子樹開始遍歷,然後遍歷右子樹,最後經過根節點。

而設計的,同時支援快速插入、刪除。

那麼它是如何實現的呢?

以上是兩個二叉查詢樹的例子,從結構上看其實沒什麼特殊的地方。重點之處在於其對節點中元素大小的排列:

對於任一節點,其左子樹中任一節點的值都必須小於當前節點的值,其右子樹中任一節點的值都必須大於當前節點的值

假設我們需要找到數字65,判斷思路很簡單:從根節點開始,當前數字若小於節點中數字則向左尋找,反之若大於節點中數字則向右尋找

看完了查詢邏輯我們再來演示一下插入的邏輯,其實和查詢類似:

1、需要刪除的目標節點無子節點,直接刪除即可。

2、需要刪除的目標節點只有乙個子節點,直接將子節點指向父節點即可。

3、需要刪除的目標節點有兩個子節點,則將右測數值大的節點上移,維持查詢二叉樹的數字排列規則。

4、需要刪除的目標節點有多級子節點,我們需要從目標節點的右側所有子節點中尋找到最小的,然後將其替換至目標節點位置

其實不管怎麼操作,最終的目的都是要保證操作之後的查詢二叉樹滿足查詢二叉樹的排列規則對於任一節點,其左子樹中任一節點的值都必須小於當前節點的值,其右子樹中任一節點的值都必須大於當前節點的值

到這裡關於二叉樹的基本內容就結束了,我們通過兩篇文章瞭解了二叉樹的結構以及幾種不同型別的二叉樹、對二叉樹的增刪改查操作,希望對大家有所幫助。

二叉排序樹的刪除結點

5樓:僑悅友閒

p的雙親節點還是指向的p的位址,這沒錯,因為p=p->lchild是把p指向p的左孩子的位址,所以p的雙親結點指向的p就是指到了刪除前p的左孩子結點,然後用free(q)釋放了p的記憶體,就完成了重接左子樹。

資料結構線索二叉樹問題

6樓:網友

<>中序線索二叉樹就是利用空餘的指標去指中序遍歷的前驅和後繼,當然先序跟後序也可以,還可以指向雙親,孩子等。

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

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

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

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

資料結構演算法判斷兩棵二叉樹是否等價

網際網路 逸白 include include include typedef char datatype typedef struct node bitree bitree createtree bitree root root bitree malloc sizeof bitree root d...