2

我正在尝试解决 Scala 中的硬件问题。一个传统的解决方案需要一个堆栈,但到目前为止还没有在课程中引入堆栈。只介绍了列表。我的问题是如何将列表视为堆栈?换句话说,我如何模拟列表中的推送和弹出元素?

4

1 回答 1

8

我希望这将表明这个想法:

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)
于 2013-04-06T20:12:15.460 回答