擅长:python、mysql、java
<p>未经测试,但应该这样做</p>
<pre><code>class Person:
ID = itertools.count()
def __init__(self):
self.id = next(self.__class__.ID)
self.parent = None
self.children = []
def createTree(familyTreeDict, parent=None):
if not familyTreeDict:
return []
else:
members = []
for name familyTreeDict:
members.append(Person(name))
members[-1].parent = parent
for child in familyTreeDict[name]:
members[-1].children.append(createTree(child, members[-1]))
return members
</code></pre>
<p>然后,如果要打印出树结构,请给定<code>createTree</code>的输出:</p>
<pre><code>def printout(family, indent=0):
for parent in family:
print '\t'*indent, parent.name
for child in parent.children:
printout(child, indent+1)
</code></pre>
<p>希望这有帮助</p>