Cześć, kod do main jest na podstawie książki, więc pewnie main jest źle tylko jak zrobić, żeby było dobrze i dlaczego tak? Z góry dzięki za pomoc.
#include <iostream>
using namespace std;
struct wezel{
int WartGlowy;
wezel *lewy;
wezel *prawy;
};
wezel *wstaw(wezel *drzewo, int wart){
if(drzewo==NULL){
wezel* NoweDrzewo=new wezel;
NoweDrzewo->lewy=NULL;
NoweDrzewo->prawy=NULL;
return NoweDrzewo;
}
if(wart< drzewo->WartGlowy)
drzewo->lewy=wstaw(drzewo->lewy,wart);
else if(wart> drzewo->WartGlowy)
drzewo->prawy=wstaw(drzewo->prawy,wart);
return drzewo;
};
wezel *szukaj(wezel *drzewo, int wart){
if(drzewo==NULL)
return NULL;
else if(drzewo->WartGlowy==wart)
return drzewo;
else if(wart< drzewo->WartGlowy)
return szukaj(drzewo->lewy,wart);
else if(wart> drzewo->WartGlowy)
return szukaj(drzewo->prawy,wart);
};
void ZniszczDrzewo(wezel *drzewo){
if(drzewo!=NULL){
ZniszczDrzewo(drzewo->lewy);
ZniszczDrzewo(drzewo->prawy);
delete drzewo;
}
};
int main(){
wezel *drzewo;
int a,b,x;
cout<<"1.wstaw \n2.szukaj \n3.zniszcz \n4.koniec \n";
do{
cin>>x;
if(x==1){
cout<<"wstaw do drzewa liczbe: ";
cin>>a;
wstaw(drzewo,a);
cout<<endl;
}
else if(x==2){
cout<<"szukaj w dzrzewie liczby: ";
cin>>b;
szukaj(drzewo,b);
}
else if(x==3)
ZniszczDrzewo(drzewo);
}while(x!=4);
};