目錄
二叉查詢樹(英語:binary search tree),也稱為二叉搜尋樹、有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree)指一棵空樹或者具有下列性質的二叉樹:
若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值
若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值;
任意節點的左、右子樹也分別為二叉查詢樹;
沒有鍵值相等的節點。
二叉查詢樹相比於其他資料結構的優勢在於查詢、插入的時間複雜度較低。為o(logn)
。二叉查詢樹是基礎性資料結構,用於構建更為抽象的資料結構,如集合、多重集、關聯陣列等。
在二叉搜尋樹b中查詢x的過程為:
若b是空樹,則搜尋失敗,否則:
若x等於b的根節點的資料域之值,則查詢成功;否則:
若x小於b的根節點的資料域之值,則搜尋左子樹;否則:
查詢右子樹。
向乙個二叉搜尋樹b中插入乙個節點s的演算法,過程為:
若b是空樹,則將s所指節點作為根節點插入,否則:
若s->data等於b的根節點的資料域之值,則返回,否則:
若s->data小於b的根節點的資料域之值,則把s所指節點插入到左子樹中,否則:
把s所指節點插入到右子樹中。(新插入節點總是葉子節點)
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 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 解釋 輸入為 ...