查找二叉树在实践当中有很多应用。
今天讨论三种情况。最小值。最大值。给定值。
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("查无此数"); } } }