나는 수의 나무가있다. 각 노드는 왼쪽 및 오른쪽 자식 노드를 가질 수 있습니다. 숫자는 반복 될 수 없지만 트리의 아무 곳에 나있을 수 있습니다. 트리에서 숫자를 검색 한 다음 트리의 루트까지 경로를 인쇄해야합니다.파이썬에서 트리 노드의 부모 추적하기
노드를 부모가 누구인지 추적하여 루트로 다시 인쇄 할 수있는 방법을 생각할 수 없습니다. 내가 어떻게 이걸 이룰 수 있니?
코드는 다음과 같이
# The Tree class holds a value and left and right childs
class Tree:
def __init__(self, value, left=None, right=None):
self.value = value
self.left = left
self.right = right
# recursive function that searches the tree for a node
# and alerts when the node is found
def searchNode(tree, node):
if tree == None:
return
else:
searchNode(tree.left,node)
searchNode(tree.right,node)
if tree.value == node:
print "Node " + str(node) + " found!"
# manually creating a tree with its subtrees
tree1 = Tree(1,Tree(40,Tree(33,left=Tree(204)),
Tree(21,left=Tree(12,right=Tree(2,left=Tree(32))))),
Tree(7,Tree(46),Tree(11,Tree(3),Tree(1000))))
# searching tree
searchNode(tree1, 46)
재귀. 하지만 먼저 재귀를 배워야하고 그 전에 재귀가 필요합니다. 또한 재귀 학습을 마쳤 으면 재귀를 학습해야합니다. 또한 재귀를 시도하는 경우 정의 된 return 문을 추가하여 정보를 스택에 올바르게 전달할 가능성이 높습니다. –