Schreiben Sie in Scala für den Trait
BinTree, der durch die zwei
case-Klassen
Empty und
Branch implementiert ist, die Methoden:
- size():Long: Zur Berechnung der Anzahl der Elemente in der Menge.
- contains(e : E)(implicit ordering:Ordering[E]):Boolean: Zum Testen, ob ein gesuchtes Element in der Menge enthalten ist.
- 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.