递归树和不定义树结构

时间:2017-05-03 15:51:22

标签: recursion tree sum

我有一个节点和子节点Dictionary<int,int[]>的字典(1)和一个与每个节点相关的权重列表(2)。字典可以解释如下:例如:键1具有值3,4,这意味着节点id = 1是节点3和4的父节点。键3具有值5,6,8,这意味着节点id = 3是父节点5,6和8 ......等。第二个列表只是权重列表,其中索引表示权重与之关联的节点ID。

我想计算list(1)的每个关键节点,它是所有子节点权重的总和。

我认为这个问题类似于递归树和,尽管我的列表没有设置为树结构。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

一位正在工作的同事想出了这个优雅的解决方案(需要2个字典)。可能不是最有效率的。

double MethodName(int Id) => FirstDic.ContainsKey(Id) ? FirstDic[Id].Sum(n => MethodName(n)) : SecondDic.Where(y => y.Key == Id).Select(x => x.Value).Sum();