Drzewo binarne, błąd

0

Mam taki kod:

#include<iostream>
using namespace std;
struct lisc{
       int dana;
       lisc *l;
       lisc *p;
};

lisc *drzewo=NULL;
void dodrzewa(lisc *&dr, int d)
{
     if(!dr)
     {
                dr=new lisc;
                dr->dana=d;
                dr->l=NULL;
                dr->p=NULL;
     }
     else if(d < dr->dana)
     {
          dodrzewa(dr->l,d);
          else
          dodrzewa(dr->p,d);
     }
          
}
int main(){
    int dan;
    for(int i=0;i<5;i++)
    cin >> dan;
    dodrzewa(korzen,dan);
    
    system("pause");
    return 0;
} 

Zaznacza mi błąd tutaj

 else if(d < dr->dana)
     {
          dodrzewa(dr->l,d);
          else
          dodrzewa(dr->p,d);
     }

że brakuje średnika przed else, nie mam pojęcia czy mi się dev posypał czy co ?

0

Widzisz jak ten kod jest pokolorowany i sformatowany? Do czego sie odnosi to else? Bo ja nie widze przed nim żadnego ifa...

0
 else if(d < dr->dana)
     {
          dodrzewa(dr->l,d);
     } else {
          dodrzewa(dr->p,d);
     }
0

Jak otwierasz zakresy, to je zamykaj... we właściwych miejscach.

else if(d < dr->dana)
{
          dodrzewa(dr->l,d);
}
else
{
          dodrzewa(dr->p,d);
}
0

że brakuje średnika przed else, nie mam pojęcia czy mi się dev posypał czy co ?

Szukanie błędu zawsze należy zaczynać od siebie, dopiero później obwiniaj deva czy cokolwiek innego...

1 użytkowników online, w tym zalogowanych: 0, gości: 1