Я застрял с программой двоичного дерева поиска, не могу найти правильный вывод, помогите мне. Я отправляю программу в описании
#include<conio.h> #include<process.h> #include<stdlib.h> #include<stdio.h> struct bstnode{ int data; struct bstnode* right; struct bstnode* left; }; bstnode* getnewnode(int data){ bstnode* newnode=(bstnode*)malloc(sizeof(struct bstnode)); newnode->data=data; newnode->right=NULL; newnode->left=NULL; return newnode; } bstnode* insert(bstnode* root,int data){ if(root==NULL) { root=getnewnode(data); } else if(data<=root->data){ root->left=insert(root->left,data); }else{ root->right=insert(root->right,data); } return root; } int search(bstnode* root,int data){ if(root==NULL) return(-1); else if(root->data ==data) return(1); else if(data <= root->data) return search(root->left,data); else return search(root->right,data); } void main(){ struct bstnode* root=NULL; root=insert(root,15);root=insert(root,10);root=insert(root,20); root=insert(root,25);root=insert(root,8);root=insert(root,12); int number; printf("\n enter no. to be searched \n "); scanf("&d",&number); if(search(root,number)==1) printf("found \n "); else printf("not found \n"); getch(); }
Что я уже пробовал:
Я перепробовал все . помогать мне.