二叉搜尋樹

2021-10-03 09:42:47 字數 1045 閱讀 6500

插入操作

tree-insert(t,z)//	執行時間o(h)

y=nil //該過程保持遍歷指標y作為x的雙親

x=t.root //指標x記錄了一條向下的簡單路徑

while x!=nil

y=xif z.key < x.key

x=x.left

else x=x.right

z.p=y

if y==nil

t.root=z //tree t was empty

else

if z.keyy.left=z

else y.right=z

刪除操作

transplant

(t,u,v)

//以v替換u

if u.p==nil

t.root=v

else

if u==u.p.left

u.p.left=v

else u.p.right=v

if v!=nil

v.p=u.p

tree_delete

(t,z)

if z.left==nil //1)z無左孩子

transplant

(t,z,z.right)

else

if z.right==nil //2)z無右孩子

transplant

(t,z,z.left)

else y=

tree_minimum

(z.right)

//找到z的後繼y

if y.p!=z //3)z有左右孩子,且y不是z的孩子

transplant

(t,y,y.right)

y.right=z.right

y.right.p=y

transplant

(t,z,y)

//4)z有左右孩子且y就是z的右孩子

y.left=z.left

y.left.p=y

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 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 解釋 輸入為 ...