import java.util.Iterator;
class Hund implements Comparable {
String navn;
Kull mittKull;
// Tidspunkt minFodselstid;
Hund neste = null;
Hund(Kull k, String navn) {
this.navn = navn;
mittKull = k;
}
// Oppgave 2a
public Hund mor() {
return mittKull.mor;
}
public Hund far() {
return mittKull.far;
}
@Override
public int compareTo(Hund h) {
// Oppgave 2b
return 0;
}
/*
public boolean erHelsosken(Hund h) {
// Oppgave 2c
}
public boolean erHalvsosken(Hund h) {
// Oppgave 2c
}*/
// Oppgave 2d
public Hund finnEldsteKjenteOpphav() {
if (mor() == null && far() == null) {
return this;
}
else if (far() == null) {
return mor().finnEldsteKjenteOpphav();
}
else if (mor() == null) {
return far().finnEldsteKjenteOpphav();
}
else {
Hund eldsteMorside = mor().finnEldsteKjenteOpphav();
Hund eldsteFarside = far().finnEldsteKjenteOpphav();
// Hvem er foedt foerst av far og mor
if (eldsteMorside.compareTo(eldsteFarside) < 0) {
return eldsteMorside;
} else {
return eldsteFarside;
}
}
}
}
abstract class Kull implements Iterable {
Hund mor, far;
Kull (Hund mor, Hund far) {
this.mor = mor;
this.far = far;
}
public abstract void settInn(Hund h);
public abstract Iterator iterator();
}