二叉排序樹刪除節點

2021-10-04 21:32:23 字數 2393 閱讀 6960

/**

* @description 二叉排序樹的節點

* @auther eleven

* @create 2020-04-09 20:43

**/public

class

node

//新增方法

public

void

add(node node)if(

this

.value>node.value)

else

}else

else}}

//中序遍歷

public

void

midprint

(node root)

midprint

(root.left)

; system.out.

println

(root.value)

;midprint

(root.right);}

//查詢節點

public node searchnode

(node node)

elseif(

this

.value>node.value)

else

}public

void

deletenode

(node node)

/** * 查詢父節點

* @param node

* @return

*/public node searchparent

(node node)

else

elseif(

this

.right!=null &&

this

.valuereturn null;}}

}

/**

* @description 二叉排序樹

* @auther eleven

* @create 2020-04-09 20:43

**/public

class

binarysorttree

else

}public

void

midprint()

}public node searchnode

(node node)

else

}/**

* 刪除節點

* @param node

*/public

void

deletenode

(node node)

else

//找到這個節點的父節點

node parent =

searchparent

(node)

;//刪除葉子節點

if(target.left==null && target.right==null)

else

}else

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

else

else

}else

else}}

}}/** * 找一顆數中的最小節點

* @param node

* @return

*/private node findminnode

(node node)

//刪除最小節點

deletenode

(target)

;return target;

}/**

* 搜尋父節點

* @param node

* @return

*/public node searchparent

(node node)

else

}}

public

static

void

main

(string[

] args)

;for

(int i:arr)

binarysorttree.

midprint()

;// system.out.println(binarysorttree.searchnode(new node(1)).value);

system.out.

println

("--------------------");

binarysorttree.

deletenode

(new

node(3

)); binarysorttree.

midprint()

;}

二叉排序樹新增刪除節點

二叉排序樹 可以很快的檢索到具體的資料。什麼是二叉排序樹 讓左子節點的值小於父節點,右子節點的值大於父節點,這樣的二叉樹稱為二叉排序樹。往二叉排序樹中新增節點 首先要看新增節點的父節點是否為空,在判斷新增節點的值和父節點的值的大小關係,如果小,就放在左節點,如果大就放在右節點 新增節點 public...

二叉排序樹刪除

二叉排序樹的刪除情況比較複雜,有以下三種情況需要考慮 第一種情況 刪除葉子節點 思路 第二種情況 刪除只有一棵子樹的節點,比如1 思路 如果targetnode有右子節點 第三種情況 刪除有兩棵子樹的節點 比如 7,3,10 思路 public class binarysorttreedemo bi...

構造二叉排序樹(BST) 二叉排序樹的刪除

主要是刪除操作 include include using namespace std typedef int elementtype typedef struct treenode threadtree void visit treenode node void inorder threadtre...