Problem z typami generycznymi

0

Mam mały problem, piszę klasę binary search tree.

Mógłbym wartość każdego wierzchołka trzymać w Object po prostu, ale tak się raczej nie robi(?), chociaż by działało.

Dlatego chcę zrobić sparametryzowaną tę klasę, lecz pojawiają się kodzie błędy po dodaniu w 22 linijce node.getLeft();

Powinno chyba działać, ale niestety. Pewnie to jakaś bzdura. Proszę o pomoc.

Kod klasy (z wewnętrzną): http://wklej.org/id/540410/

1

Zapomniałeś po prostu jednego nawiasu wąsatego zamykającego. Ten kod się u mnie kompiluje: http://pastebin.com/zSWzG7yq

Dodatkowo przerobiłem tą klasę wewnętrzną na statyczną. Zastanów się czy chcesz mieć ją niestatyczną (tzn ze wskaźnikiem do klasy TreeBST, która jest jej klasą zewnętrzną) czy też statyczną (bez tego wskaźnika). W przypadku, gdy stosujesz klasy niestatyczne i np przepinasz jeden węzeł z jednego drzewa do drugiego, to możesz mieć problemy z wyciekami pamięci. Załóżmy taką sytuację:

drzewoA
węzełA = drzewoA.new Node
drzewoB
węzełB = drzewoB.new Node

Teraz np przepinamy węzełB do drzewaA i chcemy usunąć drzewoB. Jeżeli Node jest klasą niestatyczną to niestety drzewoB nie będzie mogło zostać wyrzucone (odśmiecone), bo węzełB by na niego wskazywał. Natomiast jeżeli Node byłaby klasą wewnętrzną statyczną to wycieku by nie było, bo węzełB nie miałby wskaźnika do drzewoB (zakładając, że sam nie dodasz takiego).

0

Dzięki, swoją drogą to faktycznie o tym nie myślałem, ale zawsze to kolejna porcja wiedzy.

Tylko skąd tyle warningów w kodzie ;D

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