**如下(示例):
package binarysorttree;
public class node
@override
public string tostring()
';}//新增節點
public void
add(node node)
if(node.value < this.value)
else
}else
else}}
//查詢要刪除的節點
public node search
(int value)
else
if(this.value < value)
return this.right.
search
(value);}
else
if(this.value > value)
return this.left.
search
(value);}
else
}//查詢要刪除節點的父節點
public node searchparent
(int value)
else
if(this.value > value && this.left != null)
else
if(this.value < value && this.right != null)
else
}//使用中序遍歷列印
public void
infixorder()
system.out.
println
(this.value);if
(this.right != null)
}}
**如下(示例):
package binarysorttree;
public class binarysorttree
else
}//查詢到刪除的這個節點
public node search
(int value)
else
}//查詢要刪除的節點的父節點
public node searchparent
(int value)
else
}//刪除這個節點
public void
deletenode
(int value)
else
if(root.right == null & root.left == null)
node parentnode =
searchparent
(value);if
(targetnode.left == null && targetnode.right == null)
else
if(parentnode.right.value == targetnode.value && parentnode.right != null)
}else
if(targetnode.left != null && targetnode.right != null)
else
else
}else
}else
else
}else}}
}}}//查詢右邊節點的最小值min
public int
intmin
(node node)
deletenode
(temp.value)
;return temp.value;
}//中序遍歷
public void
infixorder()
else
}}
演示demo
package binarysorttree;
public
class
binarysorttreedemo
; binarysorttree binarysorttree =
newbinarysorttree()
;//將陣列中的每個數依次以節點的形式加入到樹中
for(
int i =
0; i < arr.length; i++
) system.out.
println
("中序遍歷");
binarysorttree.
infixorder()
; binarysorttree.
deletenode(7
);binarysorttree.
deletenode(3
);binarysorttree.
deletenode(10
);binarysorttree.
deletenode(1
);system.out.
println
("中序遍歷");
binarysorttree.
infixorder();}}
思路有點繞,但是都是比較好理解的,理清楚就行!
特別是利用其中兩種方法除外就是第三種方法的思想很不錯
資料結構與演算法 二叉排序樹 BST
二叉排序樹 bst binary sort search tree 對於二叉排序樹的任何乙個非葉子節點,要求左子節點的值比當前節點的值小,右子節點的值比當前節點的值大。特別說明 如果有相同的值,可以將該節點放在左子節點或右子節點。比如針對資料 7,3,10,12,5,1,9 對應的二叉排序樹為 二叉...
資料結構 二叉排序樹
二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為 樹表。可以作為一種排序和檢索的手段。定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹 其左子樹上所有結點的資料值均小於根結點的資料值 右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。對二叉...
資料結構 二叉排序樹
二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...