0
我正在为一棵树创建一个python类,其中每个节点都有一些由“order”给出的孩子(但每个孩子只有一个节点)。我有一个方法,children(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
抱歉,孩子的数量是通过输入“订单”给出的。编辑,使之更加清晰 –
然后,你的'孩子'方法被破坏。它假定有两个孩子。 – user2357112