이 글은 숙제이지만 코드와 관련된 도움을 요청하지는 않습니다.나무 + 파이썬의 재귀 문제
나는이 이상한 문제가 있습니다. 나는 BTREE 삭제를 구현하기 위해 노력하고 일부 재귀 반환 문제
def delete (tree , node , value) :
if node.leaf == True:
# delete value from node
return tree
elif node.leaf == False and value in node:
# do other stuff
else :
delete(tree,node.Child,value)
#recurse till you find leaf node
여기 내 전체 코드를 게시 할 수 없기 때문에이 그냥 의사 코드를 데. 문제가 오는 것은
이라고 쓸 때 delete(Tree,Tree.root,value)
처음으로 반복 실행되고 리프 노드 부분을 실행하지만 None 값을 반환합니다.
나는 모든 것을 체크 아웃하고 심지어 return tree
진술 바로 위에 인쇄물을 인쇄했으며 거기까지 약간의 가치가있는 나무로 괜찮습니다.
이 사람이 .... 나는이 재귀 함수에서 잘못하고있는 무슨
고마워요 ..
'node.leaf = False' 그늘이 보입니다. 이러한 잠재적 인 오타를 피하기 위해'if node.leaf' /'not node.leaf'를 사용해야합니다. – ide
작동 가능한 실행 가능한 코드를 붙여 넣지 않으면 문제가있는 곳을 말하기 어렵습니다. – tokland
또한,'elif'에서'node.leaf == False' 체크는 중복됩니다. 이것은 첫 번째'if' 체크로 인해 암시 적입니다. 즉'node :'에 'elif value'라고 써주십시오. –