Advertisement
Guest User

Untitled

a guest
May 26th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. class SuperStack[T] {
  2. private var list: List[T] = List[T]()
  3. def push(x : T) {
  4. list = x::list
  5. println("hui1")
  6. }
  7. def pop(): T = list match {
  8. case x::list => x
  9. case Nil => throw new IllegalStateException("SuperStack is empty")
  10. }
  11. def empty(): Boolean = list.isEmpty
  12. }
  13.  
  14. object SuperStack {
  15. implicit class SuperStackNumeric[T](stack : SuperStack[T])(implicit n: Numeric[T]) {
  16. private var min: List[T] = List[T]()
  17. private var max: List[T] = List[T]()
  18.  
  19. def push(x : T) {
  20. max = x :: max
  21. min = x::min
  22.  
  23. println("hui2")
  24.  
  25. if(stack.list.isEmpty) {
  26. println("hui")
  27. max = x::max
  28. min = x::min
  29. }else {
  30. /* if(stack.list.last > max.last) {
  31. max = stack.list.last::max
  32. } else {
  33. max = max.last::max
  34. }
  35.  
  36. if(stack.list.last < min.last) {
  37. min = stack.list.last::min
  38. } else {
  39. min = min.last::min
  40. }*/
  41. }
  42. stack.list = x::stack.list
  43. }
  44. def minf() = max.size
  45. def maxf() = max.last
  46. def average(): Double = n.toDouble(stack.list.reduceRight(n.plus))/stack.list.length
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement