Errore sull'Albero RED BLACK, AIUTO!

di
Anonimizzato16831
il
4 risposte

Errore sull'Albero RED BLACK, AIUTO!

Ciao ragazzi non riesco a capire l'errore che mi da quando cerco di testare il programma. L'albero Red Black è fatto bene, solamente la parte dove devo cancellare un elemento mi da un errore. Precisamente mi dice: Base operand of '->' has non-pointer type 'std::string...

void Albero::cancella(Nodo*x)
{
Nodo *w=new Nodo();
Nodo *y=new Nodo();

while((x!=radice) && (x->color=="black"))
{
if(x=x->Figlio_Sinistro)
{
w=x->Figlio_Destro;
if(w->color=="red")
{
x->Genitore->color="red";
w->color="black";
Rotazione_a_Sinistra(x->Genitore);
w=x->Figlio_Destro;
}
else{
if((w->Figlio_Sinistro->color=="black") && (w->Figlio_Destro->color=="black"))
{
w->color="red";
x=x->Genitore;
}
else{
if(w->color->Figlio_Destro=="black") [ QUI MI DA L'ERRORE!!!!!!!!]
{
w->Figlio_Sinistro->color=="black";
w->color="red";
Rotazione_a_Destra(w);
w=x->Figlio_Destro;
w->color=x->Genitore->color;
w->Genitore->color="black";
w->Figlio_Destro->color="black";
Rotazione_a_Sinistra(x->Genitore);

}
}
}
}
}
}

4 Risposte

  • Re: Errore sull'Albero RED BLACK, AIUTO!

    L'errore mi sembra abbastanza autoesplicativo.. w->color è una stringa, dunque w->color->Figlio_Destro non ha senso.
    Attenzione nel primo if, ci vanno due uguali non uno.
    P.s.: Quando inserisci codice nel forum, utilizza gli appositi tag
  • Re: Errore sull'Albero RED BLACK, AIUTO!

    OK perfetto ma non so come aggiustare , visto che ho seguito lo pseudocodice che ha dato il prof sulle slide :\
  • Re: Errore sull'Albero RED BLACK, AIUTO!

    Probabilmente è
    w->Figlio_Destro->color
    ....
  • Re: Errore sull'Albero RED BLACK, AIUTO!

    Ah ecco avevo gia corretto in questo modo ma mi dava lo stesso errore , forse perchè non avevo salvato . Grazie mille gentilissimo !
Devi accedere o registrarti per scrivere nel forum
4 risposte