Qu'est-ce que ce code pseudo signifie - Recherche binaire Successeur Arbre Fonction
-
21-09-2019 - |
Question
if right[x] != NIL
then return TREE-MINIMUM(right[x])
y<-p[x]
while y!= NIL and x = right[y]
do x<-y
y<-p[y]
return y
Je sais ce que « si droit [x] = NIL puis retour arbre min! » Signifie et je l'ai traduit à:
if(p->RChild) return fMinValue(p->RChild);//returns the min value of the sub-tree starting at the right child node of p
Le reste, je vais avoir du mal à comprendre.
La solution
<-
est très probablement l'opérateur d'affectation. p
Je suppose est parent. Que vous êtes confus au sujet?
Autres conseils
Ici p[]
signifie presque certainement « le nœud parent de ». Vous travaillez sur le noeud x
, donc p[x]
signifie « le parent du noeud courant » (comme right[x]
signifie « l'enfant à droite du noeud courant »).
La notation est <-
mission. Comme =
dans les langues c-like.
La deuxième partie de l'algorithme présenté des promenades sur l'arbre à la recherche pour la première fois que vous ascensionnés un lien gauche au lieu d'un droit. Mais je ne suis pas sûr que je qualifierais cela comme une fonction successeur.