生成所有未知长度的数字排列而不使用递归

时间:2017-02-03 09:21:53

标签: java bluej

我的许多朋友和老师都认为我找不到使用递归的多个'n'数字中找到所有可能的数字排列的程序是不可能的,而有人说它有可能但很棘手。所以我需要一些帮助来解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

递归是调用自身的函数的行为。在引擎盖下,函数调用被推送到系统的堆栈,当函数完成执行时,它将从堆栈中弹出。堆栈是一种存储项目的数据结构,具有以下操作:

  • push:将项目放到堆栈的末尾
  • pop:从堆栈末尾删除一个项目并将其返回
  • top:返回堆栈末尾的项目

您需要定义堆栈将存储的内容。在我们的情况下,这可能是当前的,可能是未完成的排列。如果你想要一个迭代解决方案,你的工作就是自己处理堆栈。