Implementacja drzewa z wykorzystaniem referencji oraz słownika

0

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.

0

Przede wszystkim, nie powinienes miec tam listy tylko dwa obiekty. Drzewo binarne jak sama nazwa wskazuje posiada maksymalnie dwojke dzieci

public class Node {
  public int Id { get; set; }
  public Node Left { get; set; }
  public Node Right { get; set }
}
 

Przy dodawaniu no to wystarczy ze powiazesz ID z obiektem. Uzyj do tego Dictionary
https://www.dotnetperls.com/dictionary

1 użytkowników online, w tym zalogowanych: 0, gości: 1