平面列表到树:处理坏链接以生成有效链接

时间:2017-10-24 04:54:01

标签: python recursion tree

这是一个井设计平面列表的工作代码,用于获取树:

 data = [('john','marry'),('mike','john'),('mike','hellen')('john','elisa')]

roots = set()
mapping = {}
for parent,child in data:
childitem = mapping.get(child,None)
if childitem is None:
    childitem =  {}
    mapping[child] = childitem
else:
    roots.discard(child)
parentitem = mapping.get(parent,None)
if parentitem is None:
    mapping[parent] = {child:childitem}
    roots.add(parent)
else:
    parentitem[child] = childitem

tree = {id : mapping[id] for id in roots}

print (tree)

不幸的是,我的单位列表有时是交换的,如下所示:

data = [('marry','john'),('john','mike'),('mike','hellen'),('john','elisa')]

那么,当一个已知的头部和一个孩子需要时,如何进行递归验证并交换“行”?

0 个答案:

没有答案