Graph 找到所有节点之和的最有效方法是什么';n元树中的值,其中每个节点';s值是它的总和';s儿童&x2B;1.

Graph 找到所有节点之和的最有效方法是什么';n元树中的值,其中每个节点';s值是它的总和';s儿童&x2B;1.,graph,tree,nodes,graph-theory,breadth-first-search,Graph,Tree,Nodes,Graph Theory,Breadth First Search,假设我们有一棵n元树。树中的所有叶子的值均为k 所有其他节点的值为1+其子节点值之和 查找树中所有节点的值之和的最有效方法是什么 旁白:由于这是我目前正在研究的一个问题的子任务,我想知道,在生成树本身时(我是从另一个图中使用BFS生成的),是否可以在运行中计算上述总和?假设您没有树数据结构本身以外的任何关于树的信息,“显而易见”遍历整棵树的解决方案在线性时间内解决了这一问题,并且你不能比线性时间做得更好。还有什么可以利用的吗?树中所有节点的值之和就是根节点的值-1。要在生成树时计算它,您必须从叶

假设我们有一棵n元树。树中的所有叶子的值均为k

所有其他节点的值为1+其子节点值之和

查找树中所有节点的值之和的最有效方法是什么


旁白:由于这是我目前正在研究的一个问题的子任务,我想知道,在生成树本身时(我是从另一个图中使用BFS生成的),是否可以在运行中计算上述总和?

假设您没有树数据结构本身以外的任何关于树的信息,“显而易见”遍历整棵树的解决方案在线性时间内解决了这一问题,并且你不能比线性时间做得更好。还有什么可以利用的吗?树中所有节点的值之和就是根节点的值-1。要在生成树时计算它,您必须从叶子开始计算。需要更多的信息(最好举个例子)才能得到更详细的答案。@c0我不知道你是如何得出这个结论的;所有节点都有非负值,因此总和(包括根节点的值)不能小于根节点的值。@c0der但不是每个其他节点都是根节点的子节点。例如,A->B->C作为一个反例,k=5,那么C的值是5,因为它是一片叶子;B的值是6,因为C是唯一的子节点;根节点A的值是7,因为B是唯一的子节点。那么总数是18,不是(7-1)*2。@kaya3你是对的