Oppgave 1
![]() |
Oppgave 2
![]() |
Oppgave 2a)
Oppgave 2b) |
![]() |
Oppgave 2c)
Oppgave 2d) |
![]() |
Oppgave 2e) |
![]() |
Oppgave 2f) |
Oppgave 3
Det venstre treet i Figur 5.2.1 a):
Character[] bokstaver = {'I','E','O','A','G','M','C','F','H','K','N','B','D','J','L'}; SBinTre<Character> tre = SBinTre.sbintre(Stream.of(bokstaver)); System.out.println("Antall: " + tre.antall()); System.out.println("Høyde: " + tre.høyde()); System.out.println(tre);
Det høyre treet i Figur 5.2.1 a):
Integer[] a = {8,2,10,1,6,9,14,4,7,12,15,3,5,11,13}; SBinTre<Integer> tre = SBinTre.sbintre(Stream.of(a)); System.out.println("Antall: " + tre.antall()); System.out.println("Høyde: " + tre.høyde()); System.out.println(tre);
Oppgave 4
Character[] c = {'H','J','C','F','D','M','A','I','E','K','G','L','B'}; SBinTre<Character> treA = SBinTre.sbintre(Stream.of(c)); System.out.println(treA); Character[] d = {'E','H','B','E','G','F','D','I','H','A','E','C'}; SBinTre<Character> treB = SBinTre.sbintre(Stream.of(d)); System.out.println(treB); Integer[] a = {4, 1, 8, 5, 3, 10, 7, 2, 6, 9}; SBinTre<Integer> treC = SBinTre.sbintre(Stream.of(a)); System.out.println(treC); Integer[] b = {9, 4, 17, 12, 15, 1, 8, 10, 2, 5, 4, 20, 11, 6, 16, 9}; SBinTre<Integer> treD = SBinTre.sbintre(Stream.of(b)); System.out.println(treD); String[] s = {"Sohil","Per","Thanh","Fatima","Kari","Jasmin"}; SBinTre<String> treE = SBinTre.sbintre(Stream.of(s)); System.out.println(treE); Integer[] x = {10, 5, 20, 10, 3, 8, 13, 18, 7, 5, 6, 12, 4, 9, 11, 10, 22}; SBinTre<Integer> treF = SBinTre.sbintre(Stream.of(x)); System.out.println(treF);
Oppgave 6
int n = 100000; int[] a = Tabell.randPerm(n); SBinTre<Integer> tre = SBinTre.sbintre(); for (int k : a) tre.leggInn(k); double log2 = Math.log(n)/Math.log(2); int høyde = tre.høyde(); System.out.printf("%4d %4.2f\n",høyde,høyde/log2);
Oppgave 7
public String toString() { StringJoiner s = new StringJoiner(", ", "[", "]"); toString(rot, s); return s.toString(); } private static <T> void toString(Node<T> p, StringJoiner s) { if (p.venstre != null) toString(p.venstre, s); s.add(p.verdi.toString()); if (p.høyre != null) toString(p.høyre, s); }