ahoj,
programuju v C++ BVS vyhledavaci strom a snazim se vytvorit metodu delete(int val) ktera ze stromu odstrani vrchol s hodnotou val.
Strom mam reprezentovany takto:
class BVSStrom {
int value;
BVSStrom * left, * right;
}
V medote delete nejprve najdu pozadovany vrchol, a potom pokud nema zadneho syna, tak jej smazu, tj. rad bych nastavil left/right jeho otce na NULL (a uvolnil pamet).
Zkousel jsem proste delete this;, to ale nefunguje spravne (tj. nenastavi to otci ...). Dale by me napadlo bud vest si z kazdeho syna ukazatel na otce, nebo si predchudce ukladat pri pruchodu metodou delete - ani jedno se mi moc nelibi.
Neslel by nejakym zpusobem vrchol "smazat" primo ze sebe ?
Diky Tom