logo

Árvore Binária Completa vs. Árvore Binária Completa

O que é uma árvore binária completa?

Uma árvore binária completa pode ser definida como um árvore binária em que todos os nós têm 0 ou dois filhos. Em outras palavras, a árvore binária completa pode ser definida como uma árvore binária na qual todos os nós têm dois filhos, exceto os nós folha.

A árvore abaixo é uma árvore binária completa:

função de substring java
Árvore Binária Completa vs. Árvore Binária Completa

A árvore acima é uma árvore binária completa, pois todos os nós, exceto os nós folha, têm dois filhos.

Teorema da árvore binária completa:

Considere uma árvore binária T como uma árvore não vazia então:

  • Sejam I nós internos em uma árvore e L um nó folha em uma árvore, então o número de nós folha seria igual a:
    eu = eu + 1
  • Se T tiver I número de nós internos e N for o número total de nós, então o número total de nós seria igual a:
    N = 2I + 1
  • Se T contiver 'N' o número total de nós e 'I' for o número de nós internos, então o número de nós internos seria igual a:
    Eu = (N-1)/2
  • Se 'T' tiver 'N' número total de nós e 'L' for um número de nós folha, então o número de nós folha seria igual a:
    L = (N+1)/2
  • Se 'T' contiver um número 'L' de nós folha, então o número total de nós seria igual a:
    N = 2L - 1
  • Se 'T' tiver um número 'L' de nós folha e 'I' for um número de nós internos, então o número de nós internos seria igual a:
    eu = eu - 1

O que é uma árvore binária completa?

Uma árvore binária é considerada uma árvore binária completa quando todos os níveis estão completamente preenchidos, exceto o último nível, que é preenchido a partir da esquerda.

A árvore abaixo é uma árvore binária completa:

Árvore Binária Completa vs. Árvore Binária Completa

A árvore binária completa é semelhante à árvore binária completa, exceto pelas duas diferenças fornecidas abaixo:

  • O preenchimento do nó folha deve começar pelo lado esquerdo.
  • Não é obrigatório que o último nó folha tenha o irmão correto.

Vamos entender os pontos acima através de um exemplo:

Considere a árvore abaixo:

Árvore Binária Completa vs. Árvore Binária Completa

A árvore acima é uma árvore binária completa, mas não uma árvore binária completa, pois o nó 6 não tem seu irmão direito.

Criação de árvore binária completa

Suponha que temos um array de 6 elementos mostrado abaixo:

Árvore Binária Completa vs. Árvore Binária Completa

A matriz acima contém 6 elementos, ou seja, 1, 2, 3, 4, 5, 6. A seguir estão as etapas a serem usadas para criar uma árvore binária completa:

Passo 1: Primeiro, selecionaremos o primeiro elemento do array, ou seja, 1, e faremos um nó raiz da árvore. O número de elementos disponíveis no primeiro nível é 1.

Passo 2: Agora, selecionaremos o segundo e o terceiro elementos do array. Mantenha o segundo elemento e o terceiro elemento da matriz como os filhos esquerdo e direito do nó raiz, respectivamente, mostrados abaixo:

Árvore Binária Completa vs. Árvore Binária Completa

Como podemos observar acima que o número de elementos disponíveis no segundo nível é 2.

Etapa 3: Agora, selecionaremos os próximos dois elementos do array, ou seja, 4 e 5. Mantenha esses dois elementos à esquerda e à direita do nó 2 mostrado abaixo:

Árvore Binária Completa vs. Árvore Binária Completa

Como podemos observar acima, os nós 4 e 5 são filhos esquerdo e direito do nó 2, respectivamente.

Passo 4: Agora, selecionaremos o último elemento do array, ou seja, 6, e mantê-lo-emos como filho esquerdo do nó 3, pois sabemos que em uma árvore binária completa, os nós são preenchidos do lado esquerdo mostrado abaixo:

Árvore Binária Completa vs. Árvore Binária Completa

Como podemos observar que o segundo nível contém 3 elementos.

Vamos entender as diferenças entre a árvore binária completa e completa através das imagens.

string para caractere java
  1. A árvore binária mostrada abaixo não é uma árvore binária completa nem completa. Não é uma árvore binária completa porque o nó 3 possui apenas um filho. Também não é uma árvore binária completa, pois os nós devem ser preenchidos do lado esquerdo, mas o nó 3 tem um filho direito e não tem um filho esquerdo.
    Árvore Binária Completa vs. Árvore Binária Completa
  2. A árvore binária mostrada abaixo é uma árvore binária completa, mas não uma árvore binária completa. É uma árvore binária completa porque todos os nós têm 0 ou 2 filhos. Não é uma árvore binária completa porque o nó 3 não tem filhos enquanto o nó 2 tem seus filhos e sabemos que os nós devem ser preenchidos do lado esquerdo em uma árvore binária completa.
    Árvore Binária Completa vs. Árvore Binária Completa
  3. A árvore binária mostrada abaixo é uma árvore binária completa, mas não uma árvore binária completa. É uma árvore binária completa, pois todos os nós ficam preenchidos. Não é uma árvore binária completa, pois o nó 2 possui apenas um filho.
    Árvore Binária Completa vs. Árvore Binária Completa
  4. A árvore binária mostrada abaixo é uma árvore binária completa e completa. É uma árvore binária completa, pois todos os nós ficam preenchidos. É uma árvore binária completa, pois todos os nós têm 0 ou 2 filhos.
    Árvore Binária Completa vs. Árvore Binária Completa