파이썬에서 재귀 적 메서드가 있습니다. 도움이되는지 확실하지 않지만 AVL 트리의 불균형을 확인합니다. 예를 들어, 10,20,30은 'rr'이고, 30,20,10는 'll'이고, 10,20,15는 'rl'이고 20,10,15는 'lr'입니다.
여기 내 코드입니다 :문자열을 반환하면 튜플 파이썬 재귀가 생성됩니다.
def rotation_type(bst, ptr='dummy'):
if ptr == 'dummy':
ptr = bst.root
if ptr.left != None or ptr.right != None:
if ptr.left != None:
return 'l', rotation_type(bst,ptr.left)
else:
return 'r', rotation_type(bst,ptr.right)
내 코드 작품과 모든 그러나 그것은 튜플을 반환합니다. 예를 들어 내 이진 트리가 [10,20,30]이면 ('r', ('r', None))
을 반환합니다. 'rr'과 같은 문자열 만 반환하는 방법이 있습니까? 죄송합니다.이 질문이 전에 요청되었지만 어디서나 찾을 수 없었습니다. 미리 감사드립니다 당신은 문자열마다 돌아 있도록 재귀 결과를 연결할 필요가
* 두 자녀 *가 모두있는 노드에 대해 반환해야 할 내용은 무엇입니까? 그러면 노드는 균형을 이루지 만 둘 다 자식에서 반복적으로 재귀를 원할 수 있습니다. –
두 함수가 모두있는 경우 이미 함수가 있습니다.이 함수를 호출하는 경우 함수의 끝에서 –