二叉树查找
接着上一章,对二叉树查找通常有三种类型:
1.查找最小值。
2.查找最大值。
3.查找给定值。
最小值
较小的值总是在左子节点上,在BT上查找最小值,只需要遍历左子树,直到找到最后一个节点。
function getMin() { var current = this.root; while (!(current.left == null)) { current = current.left; } return current.data; }
最大值
同理,查找最大值,只要遍历右子树
function getMax() { var current = this.root; while (!(current.right == null)) { current = current.right; } return current.data; }
查找给定值
在BT 上查找给定值,需要比较该值和当前节点上的值的大小。通过比较,就能确定如果给定值不在当前节点时,该向左遍历还是向右遍历。
function find(data) { var current = this.root; while (current != null) { if (current.data == data) { return current; } else if (data < current.data) { current = current.left; } else { current = current.right; } } return null; }