Escolar Documentos
Profissional Documentos
Cultura Documentos
Figura 6.2 contém um exemplo de uma árvore que reflete a hierarquia de uma
universidade. Outros exemplos são as árvores genealógicas, árvores refletindo a
estrutura gramatical das sentenças, e as árvores com a estrutura taxonômica de
microrganismos, plantas ou caracteres. Praticamente todas as áreas da ciência fazer
uso de árvores para representar estruturas hierárquicas.
A definição de uma árvore não impõe qualquer condição para o número de filhos de
um determinado nó. Este número pode variar de 0 a qualquer número inteiro. Em
árvores hierárquicas, esta é uma propriedade bem-vindos. Por exemplo, a
universidade tem apenas dois ramos, mas cada campus pode ter um número diferente
de departamentos. Essas árvores são utilizadas em sistemas de gerenciamento de
banco de dados, especialmente no modelo hierárquico. Mas representam hierarquias
não é a única razão para a utilização de árvores. De fato, na discussão a seguir, o
aspecto das árvores é tratada antes de ânimo leve, principalmente na discussão das
árvores de expressão. Este capítulo incide sobre as operações de árvore que nos
permitem acelerar o processo de pesquisa.
Foi um critério razoável de ordenação aplicada para a construção desta árvore? Para
testar se o 31 está na lista vinculada, oito testes devem ser realizados. Este número
pode ser ainda mais reduzido se os mesmos elementos estão ordenados de cima para
baixo e da esquerda para a direita na árvore? O que seria um algoritmo ser como que
nos obriga a fazer três testes apenas: uma para a raiz, 2, um para o seu filho do meio,
12, e outra para o filho único de esta criança de 31? O número 31 pode ser localizado
no mesmo nível em 12, ou poderia ser uma criança de 10 anos. Com esta encomenda
da árvore, nada de realmente interessante é realizado no contexto da pesquisa. (A
pilha discutido mais tarde neste capítulo usa essa abordagem.) Por conseguinte, um
melhor critério deve ser escolhido.
Novamente, observe que cada nó pode ter qualquer número de filhos. Na verdade,
existem algoritmos desenvolvidos para as árvores com um número deliberada de
crianças (ver o próximo capítulo), mas este capítulo discute somente árvores binárias.
Uma árvore binária é uma árvore cujos nós têm dois filhos (possivelmente vazio), e
cada filho é designado como deixou Criança direito OA. Por exemplo, as árvores na
figura 6.4 são árvores binárias, enquanto a árvore da universidade na Figura 6.2 não é.
Uma característica importante das árvores binárias, que é usado posteriormente para
avaliar uma eficiência esperada de algoritmos de ordenação, é o número de folhas.
Para todas as árvores não vazias, cujo binário não terminal nós temos exatamente
duas crianças não vazio, o número de folhas m é maior que o número de k nós não
terminal e k = m + 1.
Se uma árvore tem apenas uma raiz, essa observação é trivial. Se isso vale para uma
determinada árvore, depois de duas folhas de uma das folhas já existentes, esta folha
se transforma em um nó não-terminal, em que m é decrementado de 1 e k é
incrementado por 1. No entanto, porque duas novas folhas foram enxertados na
árvore, m é incrementado por 2. Após estes dois incrementos e um decréscimo, a
equação (m-1) + 2 = (k + 1) + 1 é obtido e k-m + 1, que é exatamente o resultado que
visa (ver Figura 6.5). Isso implica que uma árvore de decisão i + 1-nível completo tem 2
"deixa, e por conta da observação anterior, ele também tem 2 '- 1 nós não terminal,
que faz 21 + 2l - 1 = l 2l + - 1 nodos total (ver figura 6.35).
Adicionando uma folha de árvore (a), preservando a relação do número de folhas com
o número de
Por razões que serão discutidas mais tarde, armazenamento de cópias múltiplas do
mesmo valor na mesma árvore é evitado. Uma tentativa de fazê-lo pode ser tratada
como um erro. Os significados de "menos" ou "maior que " dependem do tipo de
dados armazenados na árvore. Nós usamos os operadores "<" e ">", que pode ser
sobrecarregado, dependendo do conteúdo. Por ordem alfabética também é usado no
caso de strings. As árvores da Figura 6.6 são árvores de busca binária. Note que a
Figura 6.6c contém uma árvore com os mesmos dados como a lista ligada na figura
6.3a, cuja busca era para ser otimizado.