查找二叉树在实践当中有很多应用。
今天讨论三种情况。最小值。最大值。给定值。
1 查找最小值
对于有序二叉树,找最小值可以从根节点出发,找left,递归。
var myfind = function(node){
if(node.left != null) {
myfind(node.left);
}else{
console.log(node.key);
}
}
2 查找最大值
从根节点出发,找right,递归。
var myfind = function(node){
if(node.right) {
myfind(node.right);
}else{
console.log(node.key);
}
}
3 查找特定值
由于这是一个有序二叉树,若等于节点值,输出;小于节点值,找left,递归;大于节点值,找right,递归。
var myfind = function(node,Num){
if(Num === node.key) {
console.log(node.key);
}else if(Num < node.key){
if(node.left){
myfind(node.left,Num);
}else{
console.log("查无此数");
}
}else{
if(node.right){
myfind(node.right,Num);
}else{
console.log("查无此数");
}
}
}