파이썬에서 재귀를 사용하는 것에 대한 개념상의 의심이 있습니다. 아래 그림은 this page at geeksforgeeks에서 복사 한 재귀 만 사용하여 스택을 되돌리기위한 파이썬 코드입니다.파이썬에서의 재귀
# Below is a recursive function that inserts an element
# at the bottom of a stack.
def insertAtBottom(stack, item):
if isEmpty(stack):
push(stack, item)
else:
temp = pop(stack)
insertAtBottom(stack, item)
push(stack, temp)
# Below is the function that reverses the given stack
# using insertAtBottom()
def reverse(stack):
if not isEmpty(stack):
temp = pop(stack)
reverse(stack)
insertAtBottom(stack, temp)
이 호출 된 함수가 호출 함수에 새로운 값을 반환하지 않기 때문에 reverse
가 전역 변수로 stack
을 사용하는 기능처럼 보인다. 이것은 재귀를 구현하는 잘못된 방법이 아닙니까? 스택에 전역 변수를 사용하지 않아야하지 않습니까?
또한 호출 된 함수의 각 인스턴스가 stack
의 자체 복사본을 사용하도록이 함수를 편집하는 방법은 무엇입니까?
문장을 어기도록 노력하십시오. * "내가 원하는 것 ... 기능"*. 이것은 두통입니다. –
'stack'은 전역이 아니며 함수로 전달됩니다. –