Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在我的程序中尝试使用append、empty()和pop并在没有迭代的情况下反转堆栈时出现递归错误 使用空的pop和append并在没有迭代的情况下反转堆栈。 我们将使用递归调用。 驱动程序代码 我得到一个错误: 递归错误:调用Python对象时超出了最大递归深度。_Python 3.x_Oop_Recursion_Data Structures_Stack - Fatal编程技术网

Python 3.x 在我的程序中尝试使用append、empty()和pop并在没有迭代的情况下反转堆栈时出现递归错误 使用空的pop和append并在没有迭代的情况下反转堆栈。 我们将使用递归调用。 驱动程序代码 我得到一个错误: 递归错误:调用Python对象时超出了最大递归深度。

Python 3.x 在我的程序中尝试使用append、empty()和pop并在没有迭代的情况下反转堆栈时出现递归错误 使用空的pop和append并在没有迭代的情况下反转堆栈。 我们将使用递归调用。 驱动程序代码 我得到一个错误: 递归错误:调用Python对象时超出了最大递归深度。,python-3.x,oop,recursion,data-structures,stack,Python 3.x,Oop,Recursion,Data Structures,Stack,hi您需要更改reverse\u堆栈 您忽略了停止递归 你可以这样做: stack = create_stack() push(stack, str(4)) push(stack, str(3)) push(stack, str(2)) push(stack, str(1)) print("Original stack:") reverse_stack(stack) print("Reversed stack:") print_stack(stack) 让我们试试看: def reverse_

hi您需要更改
reverse\u堆栈
您忽略了停止递归

你可以这样做:

stack = create_stack()
push(stack, str(4))
push(stack, str(3))
push(stack, str(2))
push(stack, str(1))
print("Original stack:")
reverse_stack(stack)
print("Reversed stack:")
print_stack(stack)
让我们试试看:

def reverse_stack(stack_q, len_s= None): 

        if len_s is None: 
            len_s = len(stack_q) 
        if len_s in  (0, 1): 
            return  

        stack_q.insert(len(stack_q) - len_s,  stack_q.pop()) 

        len_s -=1        
        reverse_stack(stack_q, len_s) 


这是您期望的答案?非常感谢@BenyGj。非常感谢@Beny Gj。您建议的更改很有见地。
stack = create_stack()
push(stack, str(4))
push(stack, str(3))
push(stack, str(2))
push(stack, str(1))
print("Original stack:")
reverse_stack(stack)
print("Reversed stack:")
print_stack(stack)
def reverse_stack(stack_q, len_s= None): 

        if len_s is None: 
            len_s = len(stack_q) 
        if len_s in  (0, 1): 
            return  

        stack_q.insert(len(stack_q) - len_s,  stack_q.pop()) 

        len_s -=1        
        reverse_stack(stack_q, len_s) 

a = list(range(1, 10))
a                          
[1, 2, 3, 4, 5, 6, 7, 8, 9]

reverse_stack(a)
a                          
[9, 8, 7, 6, 5, 4, 3, 2, 1]