public class StandardNode { /* Bruker her flyttall som verdier for enkelhets skyld; hvis klassen skulle vært med i en API, burde interfacet Comparable vært brukt. */ private double verdi; /* De to barnene til denne noden; alle noder i venstre deltre har mindre verdi, og alle noder i høyre deltre har større verdi. */ private StandardNode venstre = null; private StandardNode hoyre = null; // Standard konstruktor. public StandardNode(double verdi) { this.verdi = verdi; } public double hentVerdi() { return verdi; } public void leggTil(StandardNode nyNode) { if (nyNode.verdi < verdi) { // Noden skal legges til på venstre side if (venstre == null) { // Venstre deltre var tomt venstre = nyNode; } else { // Noden legges rekursivt til i venstre deltre venstre.leggTil(nyNode); } } else { // Noden skal legges til på høyre side if (hoyre == null) { // Høyre deltre var tomt hoyre = nyNode; } else { // Noden legges rekursivt til i høyre deltre hoyre.leggTil(nyNode); } } } public StandardNode finnVerdi(double tall) { if (tall == verdi) { // Tallet er funnet return this; } if (tall < verdi) { // Tallet må ligge på venstre side hvis det finnes if (venstre != null) { // Det letes rekursivt videre i venstre deltre return venstre.finnVerdi(tall); } } if (tall > verdi) { // Tallet må ligge på høyre side hvis det finnes if (hoyre != null) { // Det letes rekursivt videre i høyre deltre return hoyre.finnVerdi(tall); } } return null; // Tallet finnes ikke } // Denne main-metoden brukes kun til testing public static void main(String[] args) { // Oppretter rotnoden StandardNode mittTre = new StandardNode(4.723); System.out.println("4.723 lagt inn i treet"); // Flere verdier som skal legges til double[] nyeTall = {324, 5.34, 17, -0.71, 2.43, 234124.9863}; // Legger dem inn for (int i=0; i