我正在尝试解决Scala中的hw问题。传统的解决方案需要堆栈,但到目前为止还没有在类中引入堆栈。仅列出了清单。我的问题是如何将列表视为堆栈?换句话说,我如何模仿列表中的推送和弹出元素?
答案 0 :(得分:6)
我希望这会表明这个想法:
scala> val x = List(1,2,3)
x: List[Int] = List(1, 2, 3)
scala> val pushed0 = 0::x
push3: List[Int] = List(0, 1, 2, 3)
scala> val pop0 = pushed0.head
pop3: Int = 0
// it is actually more peek than fair pop
scala> val stackAfterPop = pushed0.tail
stackAfterPop: List[Int] = List(1, 2, 3)
当您熟悉模式匹配时(下周我猜),它实际上会有更好的语法:
scala> val popped::stack = pushed0
popped: Int = 0
stack: List[Int] = List(1, 2, 3)