나는 각 노드가 "order"에 의해 주어진 많은 수의 자식들을 가지지 만 (각 자식은 하나의 노드만을 가짐) 트리에 대한 파이썬 클래스를 생성한다. 나는 인덱스 i에있는 노드의 자식을 리턴하는 메소드 children (self, i)을 가지고있다. parent (self, i)를 구현하여 인덱스 i에 자식의 부모를 가져와야합니다.Python - 플랫 목록 트리 구현 : 주어진 자식, 부모 얻을?
class Tree:
def __init__(self, order=2, l=[]):
self._tree = l
self._order = order
def children(self, i):
left = self._tree[(i+1)*self._order-1]
right = self._tree[(i+1)*self._order]
return [left, right]
def parent(self, i):
if i>len(self._tree):
return ValueError
elif i==0:
return None
else:
#get parent of node i
순서 = 2 및 목록으로 표시 예 트리 [45, 2, 123, 1, 8, 40, 456]과 같을 것이다 : 여기
는 지금까지이 무엇 45
/ \
2 123
/\ / \
1 8 40 456
나는 내가 아이들 (자기, 나는)을 위해 사용한 방법을 뒤집을 수있는 방법이 있음을 알고 있지만 어떻게 확신 할 수는 없다.
n은 매개 변수로 간주됩니까? 아니면 항상 이진 트리가 될까요? – user2357112
죄송합니다. 어린이 수는 "주문"입력으로 주어집니다. 더 명확하게 편집하기 –
당신의'children' 메소드가 파기되었습니다. 정확히 2 명의 자녀가 있다고 가정합니다. – user2357112