Witam, realizowałem ostatnio zadanie, do którego potrzebowałem skorzystać ze struktury drzewa binarnego. Dostałem feedback, dotyczący innej możliwości jego realizacji i nie do końca to rozumiem, dlatego poniżej pokażę mój kod, a następnie napiszę jaki był inny sposób realizacji tego wg. mojego mentora, co nie za bardzo rozumiem:
Drzewo zbudowałem tak:
public class Node
{
public int Id { get; set; }
public int Level { get; set; }
public List<Node> Childs{ get; set; }
public int SuperiorId { get; set; } // id "ojca"
}
Czyli mam obiekt Node'a - korzeń. Do jego listy Childs dodaję potomków, i tak dalej.
Teraz szukając danego obiektu po Id szukam rekurencyjnie, zaczynając od korzenia.
Uwagi, które otrzymałem to:
1 Drzewo, w którym każdy węzeł pamięta (przez referencje) swojego bezpośredniego przełożonego (ja pamiętam po Id, nie wiem wgl jak miałoby to być zrealizowane?)
2. W jakiejś strukturze pamiętamy przyporządkowanie id->obiekt uczestnika - dictionary.