fork download
  1. object Main extends App {
  2. val n = readInt()
  3. val numbers = readLine().split(" ").map(_.toInt).toList
  4. val tree = Node(numbers.head)
  5. numbers.tail.foreach(tree.insert)
  6. println(tree)
  7. }
  8.  
  9. case class Node(item: Int, var left: Node = null, var right: Node = null) {
  10. private def sub(n: Node) = if (n == null) "-" else n
  11. override def toString = s"(${sub(left)},$item,${sub(right)})"
  12. def insert(n: Int): Unit = (left,right) match {
  13. case (null,_) if n < item => left = Node(n)
  14. case (_,null) if n > item => right = Node(n)
  15. case (_,_) if n < item => left.insert(n)
  16. case (_,_) if n > item => right.insert(n)
  17. }
  18. }
Success #stdin #stdout 0.43s 382144KB
stdin
35
13 19 32 2 20 18 4 12 29 14 30 21 3 1 16 27 22 28 5 17 8 9 7 24 34 35 10 15 11 23 26 25 6 33 31
stdout
(((-,1,-),2,((-,3,-),4,((-,5,(((-,6,-),7,-),8,(-,9,(-,10,(-,11,-))))),12,-))),13,(((-,14,((-,15,-),16,(-,17,-))),18,-),19,((-,20,((-,21,((-,22,((-,23,-),24,((-,25,-),26,-))),27,(-,28,-))),29,(-,30,(-,31,-)))),32,((-,33,-),34,(-,35,-)))))