segunda-feira, 21 de julho de 2014

Arvore Binaria.

Mais uma vez vamos conversar sobre ED, mais então meu caros leitores poque falar tanto sobre ED? nessa altura do campeonato poucos sabem mas, sem Estrutura de Dados, sem Big Data ou talvez até sem computação, esse é o ramo onde estudamos eficiência e eficacia dos nosso códigos, aqui não basta
solucionar tem que ser da melhor maneira otimizando as aplicações facilitando a busca por dados e por consequência complicando a vida de muitos programadores , mas o nosso foco são Arvores Binarias, nesse caso é basicamente a continuação de nossa ultima postagem, arvores são complicadas de se manter, então uma arvore binaria cria uma restrição quanto ao grau, no caso o grau máximo passa a ser 2 e não n grau como foi na nossa ultima postagem, sem mais conversa segue o material :
Árvores Binárias

Definição: São estruturas do tipo árvore com as seguintes características:
  • A árvore tem grau 2.
  • Cada subárvore é identificada como subárvores esquerda e direita.
  • Pode haver uma ordenação entre as subárvores.
Exemplo:

Implementação Encadeada


A implementação encadeada de árvore binária tem as seguintes características:
  • Usa um estrutura dinâmica com apontadores.
  • Cada nó contém os dados e os apontadores para as subárvores esquerda e direita.
Graficamente, teríamos:


A implementação encadeada de árvore binária é mais usada do que a estática porque e mais eficiente em termos de espaço em memória.
Definição de uma árvore binária em pascaltype
   ArvoreBinaria = ^No;
   No = record
           Dado: tipo_do_dado;
           Esquerdo,
           Direito,
           Pai : ArvoreBinaria;
        end;

O procedimento CriarNo recebe um apontador ArvoreBinaria e o dado que será colocado no nó. Além de alocar uma variável dinâmica para o nó, copia o dado para esta variável e faz com que os apontadores para o pai, para o nó esquerdo e para o nó direito sejam inicializados através do procedimento Inicializar.
A função ExisteNo retorna true se existe um nó na árvore binária passada seguindo pela direção especificada.
O procedimento Deslocar move o apontador do tipo ArvoreBinaria na direção especificada. Se a direção for nó raiz, Deslocar só encerra quando ArvoreBinaria não tiver mais um nó pai.
O procedimento ObterDado coloca em Dado (parâmetro), o valor contido no nó passado.
O procedimento AlterarDado modifica o valor do dado contido no nó passado para o valor passado como parâmetro.
O procedimento AdicionarFilho coloca um novo nó na direção especificada (nó esquerdo ou nó direito) e copia o dado passado para ele.
Fonte : http://200.17.141.213/~alberto/2012-2/ed1/aulas/arvores_binarias.htm

Nenhum comentário:

Postar um comentário