Math 根据树的大小计算插入级别
如果我有一个如下所示的图形结构Math 根据树的大小计算插入级别,math,data-structures,graph,language-agnostic,tree,Math,Data Structures,Graph,Language Agnostic,Tree,如果我有一个如下所示的图形结构 a level-1 b c level-2 c d e level-3 e f g h level-4 ...... level-n a points to b and c b points to c and d c points to d and e and so on 如何根据图形/树的大小(现有节点的数量)计算n?如果高度为h,则存在的节点数量由 1+2+3+…+h=h(h+1)/2 这意味着一个简
a level-1
b c level-2
c d e level-3
e f g h level-4
...... level-n
a points to b and c
b points to c and d
c points to d and e
and so on
如何根据图形/树的大小(现有节点的数量)计算n?如果高度为h,则存在的节点数量由 1+2+3+…+h=h(h+1)/2 这意味着一个简单的选项是获取节点总数n并进行简单的二进制搜索,以找到正确的h值,从而使h(h+1)/2=n 或者,由于n=h(h+1)/2,您可以注意到 n=h(h+1)/2 2n=h2+h 0=h2+h-2n 现在你有了一个二次方程(在h中),你可以通过求解直接得到h的值。解决办法是 h=(-1±√(1+8n))/2 如果你取负分支,你会得到一个负数,所以你应该取正分支并计算 (-1+√(1+8n))/2 直接回h
希望这有帮助 我已经删除了语言标签,因为它们似乎与您的问题无关。如果其中一个是合适的,请说明我们如何提供目标信息。你在寻找高度吗?@turbo是的,我想你可以说你假设树是最佳平衡的吗?此外,树的父元素通常不共享子元素;但这就是你所描述的。你确定你的例子是正确的吗?