Python 使用显式堆栈的置换算法

Python 使用显式堆栈的置换算法,python,stack,sequence,permutation,Python,Stack,Sequence,Permutation,我正在读我书中的stack一章,练习中有一个问题: Describe a nonrecursive algorithm for enumerating all permutations of the numbers {1, 2, . . . , n} using an explicit stack. 理解和实现递归算法很容易。但我不知道如何用显式堆栈实现它。对此,可能的解决方案是什么?如果您认为提示足以解决此问题,请提供它们,以便我可以再试一次 基本上,您需要找到一种迭代方法来实现这一点,例如

我正在读我书中的stack一章,练习中有一个问题:

Describe a nonrecursive algorithm for enumerating all permutations of the
numbers {1, 2, . . . , n} using an explicit stack.

理解和实现递归算法很容易。但我不知道如何用显式堆栈实现它。对此,可能的解决方案是什么?如果您认为提示足以解决此问题,请提供它们,以便我可以再试一次

基本上,您需要找到一种迭代方法来实现这一点,例如,使用for循环。另外,显式堆栈是什么意思?显式堆栈是指由用户定义的堆栈,而不是程序在递归时使用的隐式堆栈。允许对堆栈执行哪些操作?Python似乎没有交换操作,只是追加并弹出。@MBMB007没有这样的限制,您不能根据需要构建另一个定义。