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
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu



Nahlásit jako SPAM
IP: 217.197.149.–
Stálý člen
Věrný člen
Zjistit počet nových příspěvků
































