O que significa esse código pseudo?- Função de sucessor de árvore de pesquisa binária

StackOverflow https://stackoverflow.com/questions/2304809

  •  21-09-2019
  •  | 
  •  

Pergunta

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

Eu sei o que "se certo [x]! = Nil então retorna a árvore-min" significa e eu o traduzi para:

if(p->RChild) return fMinValue(p->RChild);//returns the min value of the sub-tree starting at the right child node of p

O resto estou tendo problemas para entender.

Foi útil?

Solução

<- é provavelmente o operador de atribuição. p Eu acho que é pai. O que mais você está confuso?

Outras dicas

Aqui p[] Quase certamente significa "o nó pai". Você está trabalhando no nó x, assim p[x] significa "o pai do nó atual" (como right[x] significa "o filho direito do nó atual").

o <- Notação é atribuição. Curti = em idiomas do tipo C.

A segunda parte do algoritmo apresentada aqui caminha pela árvore procurando a primeira vez que você subiu um link esquerdo em vez de um direito. Mas não tenho certeza se descreveria isso como uma função sucessora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top