public class Menneske { Menneske far; Menneske mor; String navn; int alder; public Menneske(String navn, int alder){ this.navn = navn; this.alder = alder; this.far = null; this.mor = null; } public void settFar(Menneske far){ this.far = far; } public void settMor(Menneske mor){ this.mor = mor; } // Finner person oppover i familietre som har blitt eldst public Menneske finnEldstePersonIForgrening() { // Basissteg: dersom ingen foreldre er kjente if (mor == null && far == null) { return this; } Menneske eldstePaaMorSiden = null; Menneske eldstePaaFarSiden = null; if (mor != null) { eldstePaaMorSiden = mor.finnEldstePersonIForgrening(); } if (far != null) { eldstePaaFarSiden = far.finnEldstePersonIForgrening(); } Menneske eldstePerson = this; if (eldstePaaMorSiden != null) { if (eldstePerson.alder < eldstePaaMorSiden.alder) { eldstePerson = eldstePaaMorSiden; } } if (eldstePaaFarSiden != null) { if (eldstePerson.alder < eldstePaaFarSiden.alder) { eldstePerson = eldstePaaFarSiden; } } return eldstePerson; } private String familieTre(String ind){ String stringen = navn + " "+ alder; if (mor !=null) stringen+= ind+mor.familieTre(ind + " "); if (far !=null) stringen+= ind+far.familieTre(ind + " "); return stringen; } public String familieTre(){ return this.familieTre("\n "); } public void paafunn(Menneske leterEtter, String familiesti){ if (this == leterEtter){ System.out.println(familiesti+this.navn); }else{ if (far!=null) far.paafunn(leterEtter, familiesti +"far"); if (mor!=null) mor.paafunn(leterEtter, familiesti +"mor"); } } public String toString(){ return navn +" "+ alder; } }