Oppgave 1
![]() |
Oppgave 2
![]() |
Oppgave 3
public int maksHøyde() { if (noder.size() == 0) return -1; // ingen trær int maks = 0; for (T e : noder.keySet()) { int høyde = 0; Node p = noder.get(e); while (p.forelder != null) { høyde++; p = p.forelder; } if (høyde > maks) maks = høyde; } return maks; }
Oppgave 4
UnionFinn<Character> m = new UnionFinn<>(); m.union('A','B'); m.union('C','D'); m.union('E','F'); m.union('G','H'); m.union('A','C'); m.union('E','G'); m.union('A','E'); System.out.println(m.maksHøyde()); // høyden er 3 System.out.println(m.mengde('A')); // {A, B, C, D, E, F, G, H} System.out.println(m.maksHøyde()); // høyden har nå blitt 1 System.out.println(m.mengde('A')); // {A, B, C, D, E, F, G, H}
Årsaken til at treets høyde har blitt redusert til 1 etter kallet på metoden mengde()
er
at i den kalles metoden finnRot()
fortløpende og dermed blir nodene «flytte opp».