/**
* 判斷二插查詢樹是否含有 指定結點
* @param x
* @return
*/public
boolean
contains
(t x)
private
boolean
contains
(t x , binarynode
t)int compareresult = x.
compareto
(t.element);if
(compareresult<0)
else
if(compareresult>0)
else
return
true
;}
/**
* 查詢最小結點
* @return
*/public t findmin()
private binarynode
findmin
(binarynode
t)if
(t.left == null)
else
return
findmin
(t.left)
;}
/**
* 查詢最大結點
* @return
*/public t findmax()
private binarynode
findmax
(binarynode
t)while
(t.right!=null)
return t;
}
/**
* 二叉查詢樹插入操作
* @param x
*/public
void
insert
(t x)
private binarynode
insert
(t x ,binarynode
t)int compareresult = x.
compareto
(t.element);if
(compareresult<0)
else
if(compareresult>0)
else
;return t;
}
/**
* 二叉查詢樹的刪除
* @param x
*/public
void
remove
(t x)
private binarynode
remove
(t x, binarynode
t)int compareresult = x.
compareto
(t.element);if
(compareresult<0)
else
if(compareresult>0)
else
if(t.left!=null && t.right!=null)
else
return t;
}
/**
* 列印二叉樹 使用中序遍歷遞迴法
*/public
void
printtree()
else
printtree
(root);}
private
void
printtree
(binarynode
t)}
/**
* 列印方法實現方法 二叉樹的遍歷 使用二叉樹的層次遍歷
* @param t
*/private
void
printtree
(binarynode
t)else
if(temp.right!=null)
} system.out.
println()
;}}
演算法 二叉查詢樹
二叉查詢樹 binary search tree 也稱有序二叉樹 ordered binary tree 排序二叉樹 sorted binary tree 是指一棵空樹或者具有下列性質的二叉樹 1.若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2.若任意節點的右子樹不空,則右子...
演算法導論 二叉查詢樹
部分實現,用insert生成二叉查詢樹。暫無delete函式。建立查詢樹是用insert逐個插入。比較簡陋,希望有所幫助。includeusing namespace std struct node class searchtree void create void insert node newn...
二叉樹查詢演算法
定義樹節點 class treenode def init self,x self.val x self.left none self.right none先序遍歷,遞迴 def preorder root treenode 遞迴地,先序遍歷二叉樹 if root none return else ...