BinTree

Schreiben Sie in Scala für den Trait BinTree, der durch die zwei case-Klassen Empty und Branch implementiert ist, die Methoden:
  1. size():Long: Zur Berechnung der Anzahl der Elemente in der Menge.
  2. contains(e : E)(implicit ordering:Ordering[E]):Boolean: Zum Testen, ob ein gesuchtes Element in der Menge enthalten ist.
  3. add(e : E)(implicit ordering:Ordering[E]):BinTree[E]: Zum Erzeugen einer neuen Menge, in der ein weiteres Element eingefügt wurde.
Damit die Elemente einen Vergleich haben, verlangen implizit die Methoden contains und add, dass es eine Ordnung auf den Elementtyp E gibt. Durch das Import import ordering._; können die Vergleichsoperatoren auf den Elementen angewendet werden.