孩子兄弟法,为啥根结点的右子树,一定为空呢?
我对孩子兄弟法的理解,就是根结点下面的孩子,第一个小孩作为左子树根结点,第二个小孩作为右子树根结点,第三个小孩作为右子树根结点的根结点,以此类推,我的想法没有问题把
图来了 大佬们 帮忙瞧瞧吧
孩子兄弟法,为啥根结点的右子树,一定为空呢?
我对孩子兄弟法的理解,就是根结点下面的孩子,第一个小孩作为左子树根结点,第二个小孩作为右子树根结点,第三个小孩作为右子树根结点的根结点,以此类推,我的想法没有问题把
图来了 大佬们 帮忙瞧瞧吧
这个孩子兄弟,没有所谓的左孩子右孩子,而是第一个孩子和下一个兄弟
根节点显然没有兄弟
看这个图
左边是普通的树,右边是你说的“孩子兄弟”
1没有兄弟,只有2个孩子,但是它只指向第一个孩子2。
2指向它的第一个孩子4,同时指向下一个兄弟3
...
节点153都是没有下一个兄弟的(5、3有上一个兄弟),所以只有往左撇
节点486都是没有孩子并且有下一个兄弟的,所以只往右撇
节点2是有下一个兄弟也有儿子的
节点79是既没有下一个兄弟,同时也是没有孩子的。
另外,你的图5.23可以反推图5.19
你看看和你的书上是否一样。
另外说一下它的实际运用
比如说windows操作系统的遍历文件系统,使用了2个api函数
FindFirstFile和FindNextFile
你可以看成前者是找第一个孩子,后者是找下一个兄弟:
https://blog.csdn.net/monk1992/article/details/82699359