二叉搜尋樹

2021-09-26 09:14:56 字數 900 閱讀 2992

二叉搜尋樹又稱二叉排序樹,它或者是一顆空樹,或是具有以下性質的樹

二叉樹的插入

二叉樹的刪除

首先查詢元素是否在二叉搜尋樹中,如果不存在,則返回,否則要刪除的節點可能分為以下四種情況

處理這四種情況也很簡單

情況1,直接刪除該節點

情況2,刪除該節點且使被刪除節點的雙親節點指向被刪除節點的左孩子節點

情況3,刪除該節點且是被刪除節點的雙親節點指向被刪除節點的右孩子節點

情況4,在它的右子樹中序遍歷的第乙個節點,用它的值填補到被刪除節點中,再來處理這個節點,這個節點分為兩種情況,也就是情況1和情況3

插入和刪除操作都必須先查詢,查詢效率代表了二叉搜尋樹中各個操作的效能

對有n個節點的二叉搜尋樹,若每個元素查詢的概率相等,則二叉搜尋樹平均查詢長度是節點在二叉搜尋樹的深度的函式,即節點越深,則比較次數越多

但對於同乙個關鍵碼集合,如果各關鍵碼插入的次序不同,可能得到不同結構的二叉搜尋樹

最優情況下,二叉樹為平衡二叉搜尋樹,其平均比較次數為log2n

最差情況下,二叉樹退化為單支樹,其平均比較次數為n/2

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...

樹 二叉樹 二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...