gpt4 book ai didi

c - C中的二叉搜索树搜索错误

转载 作者:行者123 更新时间:2023-11-30 17:38:08 27 4
gpt4 key购买 nike

    void binarySearch(int);
void createB(void);
int A[]={45,16,22,51,18,72,33,64,40};
int i,j,x,y;

int main(){

scanf("%d",&y);
createB();
binarySearch(y);
return 0;
}

createB(){


B[0]=A[0];
for(i=1; i<10; i++)
{
x=A[i];
j=0;
while(B[j]!=0)
{
if (x<B[j])
{
j=2*j+1;
}
else
{
j=2*j+2;
}
}
B[j]=x;
}
}}

void binarySearch(int y){
i=0;
while((B[i]!=0)&&(y!=B[i])){
if(y<B[i]){
i=2i+1;
}
else{
i=2i+2;
}

}

我的代码就是这样。它正确创建二叉搜索树。

45 16 51 0 22 0 72 etc

例如,如果我搜索 45 或 16,它会正确找到。但对于 66 或其他东西,它会无限循环(我用很多 printf 进行了测试)。在第一个 if 之后,对于 66,i 变为 2 (i*2+2),但随后 i 保持 2 并无限循环。

最佳答案

i=2i+1; // missing the '*' multiply

关于c - C中的二叉搜索树搜索错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com