在不使用递归的情况下生成所有未知长度的数字排列

Generate all permutations of digits in an number of unknown length without using recursion

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

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

  • push:将一个项目放到堆栈的末尾
  • pop:从堆栈末尾删除一个项目,returns它
  • 顶部:returns 堆栈末尾的项目

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