以下文字是算法手册的摘录。
我们可以画出来 二进制树使用常用于链接的矩形框 列表,但树通常绘制为由线连接的圆 因为它们实际上是图形。我们也没有明确地绘制NULL 引用树时的链接因为每个二叉树都带有N. 节点需要N + 1个NULL链接。
我的问题是作者的意思是每个具有N个节点的二叉树都需要N + 1个空链接?作者如何使用N + 1号码?
答案 0 :(得分:7)
如果您有一个1节点的树,则有2个空链接(根目录上的左侧和右侧)。如果向左或向右添加节点,则填充1 null并再添加2个节点。这种情况在无限期内持续存在,因此为每个节点添加了1个额外的空叶。
答案 1 :(得分:4)
你可以通过mathematical induction证明这一点。
1个节点有2个NULL链接 - 满足属性。
现在假设所有具有n-1个节点的树都有n个NULL链接。然后我们希望显示所有具有n个节点的树都有n + 1个NULL链接。
获取包含n个节点的任何树,然后选择leaves之一。删除这片叶子。根据我们的假设,我们现在有一个带有n个NULL链接的树。如果我们再次添加叶子,我们将失去一个NULL链接,但获得两个。因此,我们在具有n个节点的树上有n - 1 + 2 = n + 1个NULL链接。
答案 2 :(得分:1)
观察:每个边缘都充当链接。 N个节点的N-1个边缘。
完全链接:2N。
空链接:2N - (N-1)= N + 1。