Passei um bom tempo analisando os livros que implementam Oo algoritmo de inserção os livros que eu tenho tem implementações com base na linguagem Java bom o que não foi tão difícil de traduzir e de implementar isso para object Pascal.
Porém tentarei aqui Explicar melhor .
Começarei explicando a parte do While .
if id < current^.Key then
begin
current := current^.Left;
// Se não há filho à esquerda
if current = nil then
begin
// Modifica os atributos do nó relacionado
parent^.Left := newNode;
newNode^.Parent := parent;
Break;
end;
end;
Quando a chave do novo nó é menor que a chave do nó atual, o código avança para o filho à esquerda do nó atual para continuar a busca pelo local de inserção ee processo continua até que seja encontrado um nó current que não possua um filho à esquerda (current = nil), o que indica que esse é o local correto de inserção do novo nó. Nesse ponto, o novo nó é definido como o filho à esquerda do nó pai (parent) e a estrutura da árvore é ajustada para refletir a inserção do novo nó.
Quando queremos adicionar um novo elemento à fila, procuramos o lugar certo para ela na árvore. Começamos no tronco (raiz) da árvore e comparamos a chave do novo elemento com a chave d0 elemento atual.
Se a chave do novo elemento for menor, vamos para o galho esquerdo, caso contrário, vamos para o galho direito.
Continuamos descendo pela árvore até encontrar um lugar onde não há mais elementos (nenhum galho). Nesse ponto, encontramos o lugar correto para colocar do novo elemento na fila. Se do novo elemento for menor que o elemento atual, ela ficará à esquerda dela; caso contrário, ficará à direita.
Essa busca continua até que encontremos um lugar vazio, e é quando inserimos o novo elemento nesse ponto. Agora o novo elemento faz parte da fila e está organizada de acordo com sua altura em relação aos outros elementos.
Se quisermos adicionar mais elementos à fila, basta seguir o mesmo processo: procure o lugar certo na árvore e insira no local vazio.
Passei um bom tempo analisando os livros que implementam Oo algoritmo de inserção os livros que eu tenho tem implementações com base na linguagem Java bom o que não foi tão difícil de traduzir e de implementar isso para object Pascal.
Porém tentarei aqui Explicar melhor .
Começarei explicando a parte do While .
Quando a chave do novo nó é menor que a chave do nó atual, o código avança para o filho à esquerda do nó atual para continuar a busca pelo local de inserção ee processo continua até que seja encontrado um nó current que não possua um filho à esquerda (current = nil), o que indica que esse é o local correto de inserção do novo nó. Nesse ponto, o novo nó é definido como o filho à esquerda do nó pai (parent) e a estrutura da árvore é ajustada para refletir a inserção do novo nó.
Quando queremos adicionar um novo elemento à fila, procuramos o lugar certo para ela na árvore. Começamos no tronco (raiz) da árvore e comparamos a chave do novo elemento com a chave d0 elemento atual.
Se a chave do novo elemento for menor, vamos para o galho esquerdo, caso contrário, vamos para o galho direito.
Continuamos descendo pela árvore até encontrar um lugar onde não há mais elementos (nenhum galho). Nesse ponto, encontramos o lugar correto para colocar do novo elemento na fila. Se do novo elemento for menor que o elemento atual, ela ficará à esquerda dela; caso contrário, ficará à direita.
Essa busca continua até que encontremos um lugar vazio, e é quando inserimos o novo elemento nesse ponto. Agora o novo elemento faz parte da fila e está organizada de acordo com sua altura em relação aos outros elementos.
Se quisermos adicionar mais elementos à fila, basta seguir o mesmo processo: procure o lugar certo na árvore e insira no local vazio.