C 与线程二叉树的混淆

C 与线程二叉树的混淆,c,data-structures,tree,C,Data Structures,Tree,大家好 根据下面给出的线程二叉树定义 通过使通常为null的所有右子指针指向节点的顺序继承者,使通常为null的所有左子指针指向节点的顺序继承者,二叉树是线程化的 但在上面的图表中,右子指针指向有序前导,左子指针指向有序后继,这让我感到困惑。引号和图形都是正确的,也许你对后继和前导的定义是反向的?否,它们指向正确的节点。定义和图形彼此一致。然而,以下说法是错误的: 但在上图中,右子指针指向顺序 前置指针和指向顺序后继指针的左子指针 看看C,它的前身是什么?继承人命令是 B then C then

大家好

根据下面给出的线程二叉树定义

通过使通常为null的所有右子指针指向节点的顺序继承者,使通常为null的所有左子指针指向节点的顺序继承者,二叉树是线程化的


但在上面的图表中,右子指针指向有序前导,左子指针指向有序后继,这让我感到困惑。

引号和图形都是正确的,也许你对后继和前导的定义是反向的?

否,它们指向正确的节点。

定义和图形彼此一致。然而,以下说法是错误的:

但在上图中,右子指针指向顺序 前置指针和指向顺序后继指针的左子指针


看看C,它的前身是什么?继承人命令是

B then C then D
所以B是C的前任,D是C的继任者

C的左指针指向哪里?B、 这是前任,我觉得不错

同样,正如预期的那样,C的右指针指向D


似乎语句、图表和逻辑都是一致的。问题出在哪里?

在一些书中,当作者提到“子节点”时,他们指的是出现在父节点的处的子节点(可能是因为从节点自身的角度来看,它位于左侧)。这同样适用于另一种情况-他们将称为

小心别弄糊涂了

在上图中,定义是正确的:左边的子对象称为左边的子对象


右侧节点的情况类似

是的,它们指向的是正确的节点,但它如何真正支持能够理解的二叉线程树的定义?我不知道问题出在哪里。以G为例,它的左子节点是F,它是节点的顺序前置节点。如果这仍然让人困惑,请检查inoder的意思。这很好,但如果你以E为例,它应该只指向F,而不是D,它怎么会指向D呢?线程树中没有null。什么是E的顺序前置?D是EThanks@Djna的顺序前置,这很简单。你说的是C是节点,它的左指针和右指针都是空的,左指针指向前置,左指针指向后续。