在不使用递归的情况下生成所有未知长度的数字排列
Generate all permutations of digits in an number of unknown length without using recursion
我的许多朋友和老师争辩说,在不使用递归的 'n' 数字中找到所有可能的数字排列的程序是不可能的,而有人说这是可能的但很棘手。所以我需要一些帮助来解决这个问题。
谢谢。
递归是函数调用自身的行为。在引擎盖下,函数调用被推送到系统堆栈,当函数完成执行时,它将从堆栈中弹出。堆栈是一种存储项目并具有以下操作的数据结构:
- push:将一个项目放到堆栈的末尾
- pop:从堆栈末尾删除一个项目,returns它
- 顶部:returns 堆栈末尾的项目
您需要定义堆栈将存储的内容。在我们的例子中,这可能是当前的、可能未完成的排列。如果你想要一个迭代的解决方案,你的工作就是自己处理堆栈。
我的许多朋友和老师争辩说,在不使用递归的 'n' 数字中找到所有可能的数字排列的程序是不可能的,而有人说这是可能的但很棘手。所以我需要一些帮助来解决这个问题。 谢谢。
递归是函数调用自身的行为。在引擎盖下,函数调用被推送到系统堆栈,当函数完成执行时,它将从堆栈中弹出。堆栈是一种存储项目并具有以下操作的数据结构:
- push:将一个项目放到堆栈的末尾
- pop:从堆栈末尾删除一个项目,returns它
- 顶部:returns 堆栈末尾的项目
您需要定义堆栈将存储的内容。在我们的例子中,这可能是当前的、可能未完成的排列。如果你想要一个迭代的解决方案,你的工作就是自己处理堆栈。