这段代码出了什么问题? (scala递归中的河内塔)

时间:2013-04-27 11:57:40

标签: function scala

我需要再次帮助。我不知道这段代码有什么问题,有人可以帮帮我吗?

def moveTower(n: Int, source: Stack[Int], sink: Stack[Int], workspace: Stack[Int]):     Stack[Int] = {
    if (n == 1) {
      sink.push(source.pop.##)
    } else {
      moveTower(n - 1, source, workspace, sink)
      sink.push(source.pop.##)
      moveTower(n - 1, workspace, sink, source)
    }
  }

  var source = Stack[Int](5, 4, 3, 2, 1)
  var sink = Stack[Int]()
  var workspace = Stack[Int]()
  moveTower(source.length.toInt, source, sink, workspace)
  println(source, sink, workspace)

1 个答案:

答案 0 :(得分:1)

排队:

  println(moveTower(n, source, sink, workspace))

请注意,moveTower()类型是单位打印Unit.toString