二叉搜尋樹的增刪改查

2021-10-07 11:18:39 字數 892 閱讀 1796

二叉搜尋樹(binary search tree)簡稱 bst,是一種特殊形式的二叉樹。

二叉搜尋樹的的結構有兩種可能:

對於二叉搜尋樹,需要掌握基本的操作:

當要查詢目標值的節點時,我們可以根據二叉樹的結點資料值的有序性(左孩子 <= 根結點 <= 右孩子),根據以下思路進行查詢:

簡單實現:

// 返回以目標值結點為根結點的二叉樹

function

search

(root, val)

if(root.val === val)

else

if(root.val > val)

else

}

簡單實現:

function

insert

(root, val)

if(val < root.val)

else

return root

};

刪除結點時,我們要考慮以下情況:

簡單實現:

function

delete

(root, n)

if(root.val === n)

else

if(root.left)

else

}else

if(root.val > n)

else

}// 尋找左子樹最大值

function

findmax

(root)

}// 尋找右子樹的最小值

function

findmin

(root)

}

二叉搜尋樹 增刪查

性質 每個節點的key值各不相同 左子樹上所有節點的key值小於根結點 右子樹上的所有節點key值大於根結點 左右子樹都是二叉搜尋樹 insert插入 bool insert const k key 非遞迴插入 node cur root node parent null while cur els...

二叉排序樹的增 刪 改 查

public class node public void add int m else else else else public string select int index else if flag.value index else if flag.value index else publ...

二叉搜尋樹的增刪查改

在實際生產中,一棵二叉搜尋樹的平均深度是log n 所以通常是遞迴的編寫二叉樹的操作 不需要太擔心爆棧的問題。對二叉樹的所有操作,無非就是從根節點 左子樹 右子樹這三者中入手,分析基本的 可能的情況後,再遞迴的編寫相應的操作即可。我們的重點放在insert 操作和 delete 操作中。insert...