Comparação de eficiência das várias soluções
Para todos os algoritmos foram usadas as mesmas estruturas de dados básicas, tais como um nó, uma árvore (com raiz e duas referências de memória para os nós filhos), uma classe representativa de uma embalagem da farmácia e , por fim, uma lista ligada no caso das listas de saltos
-
– Árvores Binárias
Tendo em conta que nestas árvores não existe qualquer critério de equilíbrio, estas tornam-se facilmente degeneradas com a sucessiva introdução de nós na árvore. Basta para isso pensar no caso de uma inserção ordenada, em que uma vez que os elementos vão entrar por ordem, a inserção vai ser feita apenas num sentido, gerando assim uma estrutura com apenas ramificação.
Sendo assim, não é aconselhável, tal como se pode observar pelos resultados (ver anexo A) o uso de métodos recursivos quando se trata de árvores muito grandes com grande informação, uma vez que o seu uso leva ao fácil esgotamento da memória, (árvores com vários níveis leva a várias chamadas de métodos), podendo mesmo levar a erros de execução, como, por exemplo, “Stack Overflow”. Por isso, é mais seguro usar algoritmos iterativos para percorrer este tipo de árvores.
-
– Árvores AVL
Uma vez que estas árvores possuem um fator de equilíbrio muito forte, isto é, a diferença de alturas entre as duas sub-árvores de cada nó, nunca é maior do que a unidade, a utilização de métodos recursivos já não levanta problemas, tendo em conta que estas árvores não crescem muito.
No entanto, apesar de o equilíbrio final da árvore ser muito bom, existe sempre algum custo (“overhead”) na inserção de novos elementos, tendo em conta que é necessário calcular fatores de equilíbrio e reestruturar a árvore caso esta não esteja equilibrada.
Estas árvores são estruturas que apresentam uma boa relação entre os nós atravessados numa inserção e o número de rotações necessárias para o reequilíbrio.
-
– Árvores VP
Nesta árvores usou-se referência auxiliares para os nós “pais” para facilitar a manipulação da árvore, mesmo que traga algum custo, este não é muito relevante.
Verifica-se que a abordagem “bottom-up” é mais fraca que a estratégia “top-down” uma vez que a primeira obriga a percorrer a árvore duas vezes, uma para inserir um nó tal como numa árvore binária e outra para avaliar possíveis falhas nas condições de equilíbrio de maneira a proceder ao seu reequilíbrio.