在字典树中查找根

时间:2017-12-03 17:11:51

标签: python dictionary tree root

我有这样的字典树:

{ b : [e], a : [b,c], c : [], e : []}

即使我有一个很长的字典,我怎样才能快速找到根(在这个例子中' a`)?

2 个答案:

答案 0 :(得分:0)

遍历邻接列表,将每个“from”节点放入一组源节点,并将每个相应的“to”节点放入一组目标节点。

从源集中减去目标集将产生以下之一:

  • 空集 - 这意味着您的邻接列表不代表树或森林,
  • 包含多个节点的集 - 这意味着您的邻接列表代表森林,或
  • 包含单个项目的集合 - 这是您的邻接列表所代表的树的根。

以下是您的示例的工作原理:

  • source{ b, a, c, e }
  • destination{ e, b, c }
  • source \ destination{ a }

答案 1 :(得分:0)

在您的示例中,变量(a,b,c,e)未定义。假设您可以将它们替换为字符串(甚至是整数):

d = {'b':['e'], 'a':['b','c'], 'c':[], 'e':[]}

root = set(d).difference(*d.values()).pop()
print(root)

--> a