小螞蟻學習數據結構(32)——二叉排序樹的概念

二叉排序樹,定義:spa

    1,若左子樹非空,則左子樹上全部節點的關鍵字均小於根節點關鍵字。.net

    2,若右子樹非空,則右子樹上全部節點的關鍵字均大於根節點關鍵字。指針

    3,左右子樹自己又是一顆二叉樹。blog

    定義也是一個遞歸定義。排序

二叉排序樹的特色:遞歸

    中序遍歷二叉排序樹,能夠獲得關鍵字序列是一個遞增的有序序列。ci

二叉排序樹查找思路:get

    1,若是二叉排序樹爲空,則查找失敗。博客

    2,若是key等於當前根節點,則查找成功。it

    3,若是key小於當前根節點的值,在繼續在根的左子樹中查找。

    4,若是key大於當前根節點的值,在繼續在根的右子樹中查找。

二叉排序樹的代碼實現:

    (略),哈哈哈,今天是除夕,在家裏心不靜,就不寫了,感受也不難,之後有時間再寫。

二叉排序樹的查找:

    在二叉排序樹上的平均查找長度與二叉樹的形態有關。

    當樹的形態比較均衡時,樹的高度較小,平均查找長度也較小。

二叉排序樹的插入:

    1,若是二叉排序樹爲空,則待插節點做爲根節點插入空樹中。

    2,若是待插入的關鍵字值和根節點關鍵字值相等,則無需插入。

    3,若是插入的關鍵字小於根節點的數值,則插入到左子樹中。

    4,若是插入的關鍵字大於根節點的數值,則插入到右子樹中。

    5,如此進行下去,固然,若是該數值已經存在就再也不插入同一個數值。

二叉排序樹的刪除:

    1,刪除葉子節點,很簡單,直接刪除,父節點的指針域賦予NULL

    2,刪除單分支節點,將父節點與孩子節點直接相連

    3,刪除雙分子節點,用它的中序後繼替換它,並使整棵樹保持BST性質。

二叉排序樹的查找分析:

    剛纔也提到了,這個和二叉排序樹的排列生成順序有關,若是這個二叉排序樹的形態是一條直線的話,這和順序查找沒有什麼不一樣,爲了防止這種狀況的產生,就出來了一個平衡二叉樹的概念。

平衡二叉樹:

    略,立刻晚會就開始了,PS:祝你們新年快樂,萬事如意。 (*^-^*)


    學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog

相關文章
相關標籤/搜索