Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Novo artigo Do básico ao intermediário: Filas, Listas e Árvores (VIII) foi publicado:
Neste artigo veremos como implementar um algoritmo de balanceamento da árvore. O que será visto aqui, é a minha proposta para este tipo de mecanismo. Existem diversos outros mecanismos com o mesmo tipo de objetivo. Porém cada um tem seus problemas e suas vantagens. Depende de você, meu caro leitor, estudar e procurar encontrar o que melhor irá lhe atender.
No artigo anterior Do básico ao intermediário: Filas, Listas e Árvores (VII), foi explicado um de tantas formas possíveis de implementarmos um mecanismo de exclusão de um node em uma árvore. Aquele tipo de coisa precisa ser muito bem compreendido para que possamos trabalhar com árvores com diferentes objetivos. Como foi mencionado no artigo anterior, existem outras maneiras de se implementar o mecanismo de exclusão. Porém, aquele que foi mostrado ali, ao meu ver é um dos mais simples, que não fazem uso de um modelo onde utilizamos a recursividade. O fato de não utilizarmos, ou de você tomar o cuidado de não utilizar a recursividade, no mecanismo de exclusão, se deve justamente ao fato de que, se for necessário excluir diversos elementos na árvore. E estes elementos vierem a se encontrar em um node bem profundo na árvore. A recursividade, irá gerar um custo computacional considerável. Já que para chegar em cada elemento, precisaremos empilhar diversas chamadas e depois as desempilhar. E isto acaba tomando muito tempo, degradando assim a performance dos mecanismos envolvidos na construção e manutenção da árvore.
Ok, entender isto que foi explicado, é algo realmente necessário. Isto por que, de uma maneira muito parecida, o mecanismo de busca, precisa ser muito bem pensado. Isto para evitar que tenhamos o mesmo problema de degradação da performance da árvore. Porém, e esta é a parte que complica tudo. Existe um outro problema. O balanceamento da árvore. Entender esta questão referente ao balanceamento é tão, ou talvez até mais importante do que entender os próprios mecanismos que estão, ou precisarão ser implementados.
Então neste artigo iremos entender o que seria este tal balanceamento, e por que ele é tão importante. Mas também vamos começar a entender, já que isto será visto em um outro artigo, na prática, porque as vezes não podemos, ou não devemos balancear a árvore. Mesmo que isto venha a nós causar um certo desequilíbrio durante o uso de algumas operações que venhamos a fazer na árvore. E quando me refiro a desequilíbrio, estou querendo mencionar o fato de que, as vezes as operações serão executadas rapidamente, enquanto em outros momentos ela pode vir a demorar um pouco mais. De qualquer forma, vamos iniciar o que será o tópico principal deste artigo.
Autor: CODE X