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;
    }
Foi útil?

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
scroll top