0
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;
}
}
我的代碼是。它會正確創建二叉搜索樹。c中的二叉搜索樹搜索rerror
45 16 51 0 22 0 72 etc
然後,例如,如果我搜索45或16它找到正確。但是對於66,或者其他東西,它會無限循環(我用很多printf測試過)。第一次後,如果我變成2(i * 2 + 2)爲66,但然後我保持2和無限循環。
噢,謝謝:D什麼是一個小錯誤,但我不能看到小時 – user3340480
甚至不應該編譯。 –