資料結構與演算法 二叉排序樹

2021-10-14 15:17:01 字數 2864 閱讀 3430

**如下(示例):

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...