二叉排序樹的插入和刪除

2021-07-04 16:32:56 字數 1744 閱讀 5347

遞迴的尋找插入的位置。

public

static treenode insert(int x, treenode t)

else

if (x < t.val)

t.left = insert(x, t.left);

else

if (x > t.val)

t.right = insert(x, t.right);

// 如果x已經在tree中了,則什麼也不做;

return t;

}

public

static treenode delete(int x, treenode t)

else

if (x < t.val)

t.left = delete(x, t.left);

else

if (x > t.val)

t.right = delete(x, t.right);

//找到節點並有左右兩個子樹

else

if (t.left != null && t.right != null)

//有0個或1個子樹的時候

else

return t;

}public

static treenode findmin(treenode t)

class treenode 

}public

class binarytree

public

static treenode delete(int x, treenode t)

else

if (x < t.val)

t.left = delete(x, t.left);

else

if (x > t.val)

t.right = delete(x, t.right);

//找到節點並有左右兩個子樹

else

if (t.left != null && t.right != null)

//有0個或1個子樹的時候

else

return t;

}public

static treenode findmin(treenode t)

public

static treenode insert(int x, treenode t)

else

if (x < t.val)

t.left = insert(x, t.left);

else

if (x > t.val)

t.right = insert(x, t.right);

// 如果x已經在tree中了,則什麼也不做;

return t;

}public

static treenode createtree()

// 深度優先遍歷

二叉排序樹 插入 刪除 查詢

原本是想寫關於android分享功能的部落格,但是沒真機不好去測試,大白天的手機被3歲娃娃,拿去看少兒頻道了,關於二叉排序樹的定義是 二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的...

二叉排序樹的查詢 插入和刪除

二叉排序樹 binary sort tree 又稱為二叉查詢樹,它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不為空,則左子樹上所有結點的值均小於它的根節點的值 若它的右子樹不為空,則右子樹上所有結點的值均大於它的根節點的值 它的左 右子樹也分別為二叉排序樹 遞迴 二叉排序樹用中序遍歷之...

二叉排序樹的查詢 插入 刪除

二叉排序樹的查詢 插入 刪除 何謂二叉排序樹 定義 二叉排序樹又稱二叉查詢樹,它或者是一顆空樹,或者是具有以下性質的二叉樹 1 若它的左子樹不空,則左子樹上所有節點的值均小於該節點的值。2 若它的右子樹不空,則右字樹上所有節點的值均大於該節點的值。3 它的左右子樹也分別為二叉排序樹。時間複雜度 o ...