树中的节点是否被视为自己的祖先?

我想知道在计算机科学背景下对“祖先”定义的共识是什么。 我只是问,因为在算法导论,第二版,p。 259有一个看似奇怪的算法
Tree-Successor(x)
的描述。在寻找节点x的后继者时,   [...]如果节点x的右子树为空并且x具有后继y,则y是x的最低祖先,其左子节点也是x的祖先。 在具有键
2
和子
1
3
的根的二叉搜索树中,
1
的后继是其父
2
。在这种情况下,x是x的后继者y的左子。根据这本书的定义,x必须是它自己的祖先,除非我遗漏了什么。 关于这一点,我没有在勘误表中找到任何内容。     
已邀请:
这只是一个定义问题,但在这种情况下,是的。 CLRS将x的祖先定义为从根到x的唯一路径上的任何节点,根据定义,该节点包括x。 你引用的句子片段首先提到下一页的练习12.2-6,它指定了这个:   (回想一下,每个节点都是它自己的祖先。) :-)     
  树中的节点是否被视为自己的祖先? 通常不是,AFAIK。例如,在二叉树的维基百科页面中,定义了祖先:   如果从节点p到节点q存在路径,其中节点p比q更接近根节点,则p是q的祖先,q是p的后代。 但显然,教科书对祖先的定义是这样一个节点就是它自己的祖先。这个定义并不完全直观,但教科书可以自由地为其使用的术语引入自己的定义。也许这个定义简化了一些相关的描述/定理/等。     
不,节点不是它自己的祖先。根据我应该是:如果节点x的右子树是空的并且x具有后继y,则y是x的最低祖先,其左子节点是
either x or an ancestor of x.
但是书中给出的代码据称处理这种类型的情况。     

要回复问题请先登录注册