请在下面找到一个简单的二叉搜索树检查代码:我应该多长时间在二叉树中添加条目?
class Tree {
int value;
Tree left;
Tree right;
public Tree (int a){
value = a;
left = right = null;
}
}
public class VerifyBST {
public static boolean ifBST(Tree myTree, int small , int large){
if(myTree == null)
return true;
if(myTree.value > small && myTree.value < large){
boolean leftBST = ifBST(myTree.left, small,myTree.value);
boolean rightBST = ifBST(myTree.right,myTree.value,large);
return leftBST&&rightBST;
}
else{
return false;
}
}
public static void main(String[] args) {
/*
4
/\
2 6
/\ /\
1 3 5 7 */
Tree myTree = new Tree(4);
myTree.left = new Tree(2);
myTree.right = new Tree(6);
myTree.left.left = new Tree(1);
myTree.left.right = new Tree(3);
myTree.right.left = new Tree(5);
myTree.right.right = new Tree(7);
System.out.println("BST or NOT?" + ifBST(myTree,Integer.MIN_VALUE,Integer.MAX_VALUE));
}
}
我的问题:
从代码作为清楚,我手动输入我的二叉树的所有条目,所以如果有一种情况我需要检查那些手动输入不是好主意的大树,那么应该遵循什么样的最佳方法呢?
由于我在主要方法中通过了
ifBST(myTree,Integer.MIN_VALUE,Integer.MAX_VALUE)
,这是否意味着Integer.MIN_VALUE = 1
和Integer.MAX_VALUE = 7
被传递给方法体呢?
感谢