特性:
二叉搜尋樹(二叉排序樹、二叉查詢樹)或者是一顆空樹;或者是具有下列性質的二叉樹:(1)若它的左子樹不空,則左子樹上的所有結點的值均小於它的根結點的值;(2)若它的右子樹不空,則右子樹上的所有結點的值均大於它的根結點的值;(3)它的左、右子樹也分別為二叉搜尋樹。中序遍歷可以得到乙個有序序列。
查詢:這個比較容易。
插入:這個比較容易。新插入的結點一定是乙個新新增的葉子結點。
刪除:假設刪除的結點為x,分為三種情況:
1、如果x沒有孩子結點,那麼只是簡單地將它刪除,並修改它的父節點,用空指標作為孩子結點來替換x。
2、如果x有乙個孩子結點,那麼將這個孩子結點提公升到x原來的位置,並修改x的父節點,用x的孩子結點來替換x。
3、如果x有兩個孩子結點,那麼找到x的後繼y(一定在x的右子樹中),並讓y佔據樹中x的位置。後面可能還需要做些調整。
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 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 解釋 輸入為 ...