Est un nœud dans un arbre considéré comme son propre ancêtre?

voix
4

Je me demande ce que le consensus est sur la définition de « ancêtre » dans un contexte informatique.

Je demande seulement parce Introduction aux algorithmes , deuxième édition, p. 259 il y a une description de l'algorithme Tree-Successor(x)qui semble étrange. À trouver le successeur du noeud x ,

[...] si le sous - arbre droit de nœud x est vide et x a un successeur y , alors y est l'ancêtre le plus bas de x dont l' enfant gauche est également un ancêtre de x .

Dans un arbre de recherche binaire avec une racine ayant la clé 2et les enfants 1et 3, le successeur de 1est son parent 2. Dans ce cas, x est l'enfant de gauche x successeur, y . Selon la définition du livre, alors, x doit être son propre ancêtre, à moins que je me manque quelque chose.

Je ne l' ai pas trouvé quoi que ce soit dans le errata à ce sujet.

Créé 20/06/2010 à 04:48
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
3

Est un nœud dans un arbre considéré comme son propre ancêtre?

Normalement non, autant que je sache. Par exemple, dans la page de Wikipédia sur les arbres binaires , ancêtre est défini ainsi:

Si un chemin existe à partir du nœud p au noeud q, où le nœud p est plus proche du nœud racine que q, alors p est un ancêtre de q et q est un descendant de p.

Mais apparemment , la définition de ce livre de texte de l' ancêtre est tel qu'un nœud est son propre ancêtre. Cette définition est pas tout à fait intuitive, mais un manuel est libre d'introduire ses propres définitions pour la terminologie qu'il utilise. Peut - être que cette définition simplifie certains des descriptions connexes / théorèmes / etc.

Créé 20/06/2010 à 05:14
source utilisateur

voix
-1

Non, un nœud n'est pas ancêtre de lui - même. Selon moi , il devrait être: si le sous - arbre droit de nœud x est vide et x a une y successeur, alors y est l'ancêtre le plus bas de x dont l' enfant gauche est either x or an ancestor of x.mais le code donné dans le livre de manipulation soi - disant ce type de cas.

Créé 20/06/2010 à 05:23
source utilisateur

voix
10

Il est simplement une question de définition, mais dans ce cas, oui . CLRS définissent un ancêtre de x en tant que tout noeud sur le chemin unique à partir de la racine de x, qui par définition inclut x.

Le fragment de phrase que vous avez cité commence par mentionner l'exercice 12,2 à 6 à la page suivante, qui précise ceci:

(Rappelons que chaque nœud est son propre ancêtre.)

:-)

Créé 20/06/2010 à 05:33
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more