資料結構與演算法 十一 之二叉排序樹

2021-10-02 20:29:24 字數 1013 閱讀 3016

二叉排序樹的建立

二叉排序樹的查詢

二叉排序樹的刪除

二叉排序樹滿足以下性質

當用線性表作為表的組織形式時,可以有三種查詢法。其中以二分查詢效率最高。但由於二分查詢要求表中結點按關鍵字有序,且不能用鍊錶作儲存結構,因此,當表的插入或刪除操作頻繁時,為維護表的有序性,勢必要移動表中很多結點。這種由移動結點引起的額外時間開銷,就會抵消二分查詢的優點。也就是說,二分查詢只適用於靜態查詢表。若要對動態查詢表進行高效率的查詢,就可以使用二叉排序樹。

要求:給定陣列建立二叉排序樹。

遍歷陣列:

如果數為空,那麼直接作為根節點放入。

如果比當前根節點大,向右遞迴建立。

如果比當前節點小,向左遞迴建立。

public

static binarytreenode createtree

(int

arr)

return btn;

}private

static

void

create

(binarytreenode btn,

int number)

create

(btn.right, number);}

else

create

(btn.left, number);}

}

從根節點開始找

如果比根節點大,向右遞迴查詢

如果比根節點小,向左遞迴查詢

public

static binarytreenode search

(binarytreenode btn,

int num)

else

if(num < btn.value)

else

return res;

}

分為3種情況:

刪除的是葉子節點

刪除的是只有乙個子樹的節點

刪除的是有2個子樹的節點

資料結構之二叉排序樹

二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 2 若右子樹不空,則右子樹上所有節點的值均大於它的根節點的值 3 左 右子樹也分別為二叉排序樹 4 沒有鍵值相等的節點。以下只建立並先序列印出二叉排序樹 include include...

資料結構之二叉排序樹

二叉排序樹 bst binary sort search tree 對於二叉排序樹的任何乙個非葉子節點,要求左子節點的值比當前節點的值小,右子節點的值比當前節點的值大。特別說明 如果有相同的值,可以將該節點放在左子節點或右子節點 比如針對前面的資料 7,3,10,12,5,1,9 對應的二叉排序樹為...

資料結構之二叉排序樹

別名 二叉搜素樹,二叉查詢樹 線性結構的缺點 順序儲存 不排序 查詢困難,只能通過線性查詢乙個乙個找 排序 刪除和插入操作困難 鏈式結構 無論排序還是不排序,查詢都十分麻煩 注 二叉排序樹 bst 可以解決上述的問題 對於乙個二叉樹中的任意乙個非葉子節點,要求左子節點比當前節點小,右子節點比當前節點...