Witam,
rozbudowuje swoje drzewo wyszukiwań BST. Chciałem napisać funkcje, które znajdą wartość minimalną i maksymalną. Jednak funkcje te działają na odwrót, a nie chciałbym używać ich zwyczajnie odwrotnie, tylko żeby działały tak jak powinny. Poniżej zamieszczam kod, wraz z funkcją dodającą elementy, bo może źle zapisuje dane. Z góry dzięki.
struct W
{
int wart;
W *lewy=nullptr,*prawy=nullptr;
};
void dodaj(W *&wierz, int a)
{
if(!wierz)
{
wierz=new W;
wierz->lewy=wierz->prawy=nullptr;
wierz->wart=a;
}
if(wierz->wart<a) dodaj(wierz->lewy,a);
else if(wierz->wart>a) dodaj(wierz->prawy,a);
}
void minimum(W *&wierz)
{
if(!wierz) return;
else if(!wierz->lewy) cout<<wierz->wart<<endl;
else minimum(wierz->lewy);
}
void maksimum(W *&wierz)
{
if(!wierz) return;
else if(!wierz->prawy) cout<<wierz->wart<<endl;
else maksimum(wierz->prawy);
}