Inserir um nó em uma árvore de busca binária
-
29-09-2020 - |
Pergunta
O professor deu-nos este código que insere um nó em uma árvore de busca binária, mas não tenho a certeza que o z$.p = y$ instrução.não o algoritmo de trabalho sem ele?
abr_insert(T, z) //z is the node that must be inserted
{
y = NULL;
x = T.root;
while(x != NULL)
{
y = x;
if(z.key < x.key)
x = x.left;
else
x = x.right;
}
z.p = y; //here is the instruction that I don't understand
if(y = NULL)
T.root = z;
else if(z.key < y,key)
y.left = z;
else
y.right = z;
}
Solução
Parece que este algoritmo é manter o controle de pais ponteiros.Cada nó N
tem três campos: N.left
(esquerda criança), N.right
(o filho à direita), e N.p
(pai).A variável y
é usado para manter o controle das mais recentes pai, de modo que quando nós cair da árvore (i.e.quando x == NULL
podemos usar y
como o pai do novo nó z
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange