Drzewo binarne, błąd

Drzewo binarne, błąd
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam taki kod:

Kopiuj
#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

Kopiuj
 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 ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
Kopiuj
 else if(d < dr->dana)
     {
          dodrzewa(dr->l,d);
     } else {
          dodrzewa(dr->p,d);
     }
KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 166
0

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

Kopiuj
else if(d < dr->dana)
{
          dodrzewa(dr->l,d);
}
else
{
          dodrzewa(dr->p,d);
}
msm
  • Rejestracja: dni
  • Ostatnio: dni
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...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.