-2
给定二叉搜索树的根节点,我试图创建一个递归搜索,其中找到了给定最大和最小范围内的所有节点,但是在最少量的访问中。二元搜索树递归
所以本质上是建立这个问题将是(我认为):
公共节点取景器(节点根,INT最大,INT分钟){};
给定二叉搜索树的根节点,我试图创建一个递归搜索,其中找到了给定最大和最小范围内的所有节点,但是在最少量的访问中。二元搜索树递归
所以本质上是建立这个问题将是(我认为):
公共节点取景器(节点根,INT最大,INT分钟){};
创建这是递归定义
check(Node x){
if(x.right.elm()>min&&x.right.elm()<max){
check(x.right);
}
else if(x.right.elm()>max){
check(x.right.left);
else if(x.right.elm()<min){
check(x.right.right);
}
if(x.left.elm()>min&&x.left.elm()<max){
check(x.left);
}
else if(x.left.elm()>max){
check(x.left.left);
else if(x.left.elm()<min){
check(x.left.right);
}
}
另外一个更简单的代码,你可以创建两个功能check_right和check_left功能“检查”。
“这里是我到目前为止的代码,这是我卡住的地方”通常是这样。现在你的思路还没有离开车站呢... – Floris
我在想我只是做一个if语句来检查左右儿童是否都不在范围内,如果是的话返回null(实质上什么也不做)然后从那里有2个if语句。 1st if语句:如果访问它,检查左边的孩子是否是范围,并使用左边的孩子递归地调用程序。第二条如果陈述:除了使用正确的孩子之外,完全相同。除了我知道我的逻辑不完整,我缺少步骤 – user2251001