class Hund implements Comparable { String navn; Kull mittKull; Tidspunkt minFodselstid; Hund neste = null; Hund(Kull k, String navn, Tidspunkt fodt) { this.navn = navn; mittKull = k; minFodselstid = fodt; } @Override public int compareTo(Hund h) { // Oppgave 2b return minFodselstid.compareTo(h.minFodselstid); } public Hund mor() { // Oppgave 2a if (mittKull == null) { return null; } return mittKull.mor; } public Hund far() { // Oppgave 2a if (mittKull == null) { return null; } return mittKull.far; } //Antar at dersom en forelder er null så kan de ikke være helsøsken public boolean erHelsosken(Hund h) { if (mor() == null || far() == null ) { return false; } if (mor().equals(h.mor()) && far().equals(h.far())) { return true; } return false; } public boolean erHalvsosken(Hund h) { // Oppgave 2c if (erHelsosken(h)) { return false; } if (mor() != null && mor().equals(h.mor())){ return true; } if (far() != null && far().equals(h.far())){ return true; } return false; } public Hund finnEldsteKjenteOpphav() { // Oppgave 2d //basisteg if (mor() == null && far() == null) { return this; } if (mor() == null) { return far().finnEldsteKjenteOpphav(); } if (far() == null) { return mor().finnEldsteKjenteOpphav(); } Hund eldstePaaMorSide = mor().finnEldsteKjenteOpphav(); Hund eldstePaaFarSide = far().finnEldsteKjenteOpphav(); if (eldstePaaMorSide.compareTo(eldstePaaFarSide) < 0) { return eldstePaaMorSide; } else { return eldstePaaFarSide; } } @Override public String toString() { return navn; } }