public class S?ketre { public static Node settInn(Node v, int x) { if (v == null) { v = new Node(x); } else if (v.element > x) { v.venstre = settInn(v.venstre, x); } else if (v.element < x) { v.h?yre = settInn(v.h?yre, x); } return v; } public static Node finn(Node v, int x) { if (v == null) { return null; } if (v.element > x) { return finn(v.venstre, x); } if (v.element < x) { return finn(v.h?yre, x); } return v; } public static Node finnMinste(Node v) { if (v.venstre != null) { return finnMinste(v.venstre); } return v; } public static Node fjern(Node v, int x) { if (v == null) { return null; } if (v.element > x) { v.venstre = fjern(v.venstre, x); return v; } if (v.element < x) { v.h?yre = fjern(v.h?yre, x); return v; } if (v.venstre == null) { return v.h?yre; } if (v.h?yre == null) { return v.venstre; } Node u = finnMinste(v.h?yre); v.element = u.element; v.h?yre = fjern(v.h?yre, u.element); return v; } public static void skrivUtTre(Node v) { skrivUtTre(v, 0); } private static void skrivUtTre(Node v, int niv?) { if (v != null) { skrivUtTre(v.h?yre, niv? + 1); for (int i = 0; i < niv?; i++) { System.out.print(" "); } System.out.println(v.element); skrivUtTre(v.venstre, niv? + 1); } } public static void skrivUtSortert(Node v) { if (v == null) { return; } skrivUtSortert(v.venstre); System.out.println(v.element); skrivUtSortert(v.h?yre); } }