Introdução às Árvores

Treeé uma estrutura discreta que representa relacionamentos hierárquicos entre elementos ou nós individuais. Uma árvore na qual um pai não tem mais do que dois filhos é chamada de árvore binária.

Árvore e suas propriedades

Definition- Uma árvore é um gráfico não direcionado acíclico conectado. Existe um caminho único entre cada par de vértices em $ G $. Uma árvore com N número de vértices contém $ (N-1) $ número de arestas. O vértice de 0 grau é denominado raiz da árvore. O vértice que é de 1 grau é chamado de nó folha da árvore e o grau de um nó interno é pelo menos 2.

Example - O seguinte é um exemplo de uma árvore -

Centros e Bi-Centros de uma Árvore

O centro de uma árvore é um vértice com excentricidade mínima. A excentricidade de um vértice $ X $ em uma árvore $ G $ é a distância máxima entre o vértice $ X $ e qualquer outro vértice da árvore. A excentricidade máxima é o diâmetro da árvore. Se uma árvore tiver apenas um centro, ela é chamada de Árvore Central e se uma árvore tiver apenas mais de um centro, ela é chamada de Árvore Bi-central. Cada árvore é central ou bicentral.

Algoritmo para encontrar centros e bicentros de uma árvore

Step 1 - Remova todos os vértices de grau 1 da árvore dada e também remova suas arestas incidentes.

Step 2- Repita a etapa 1 até que seja deixado um único vértice ou dois vértices unidos por uma aresta. Se um único vértice for deixado, então ele é o centro da árvore e se dois vértices unidos por uma aresta forem deixados, então ele é o bicentro da árvore.

Problem 1

Descubra o centro / bi-centro da seguinte árvore -

Solution

Em primeiro lugar, iremos remover todos os vértices de grau 1 e também remover suas arestas incidentes e obter a seguinte árvore -

Novamente, removeremos todos os vértices de grau 1 e também removeremos suas arestas incidentes e obteremos a seguinte árvore -

Finalmente temos um único vértice 'c' e paramos o algoritmo. Como há um único vértice, esta árvore possui um centro 'c' e a árvore é uma árvore central.

Problem 2

Descubra o centro / bi-centro da seguinte árvore -

Solution

Em primeiro lugar, iremos remover todos os vértices de grau 1 e também remover suas arestas incidentes e obter a seguinte árvore -

Novamente, removeremos todos os vértices de grau 1 e também removeremos suas arestas incidentes e obteremos a seguinte árvore -

Finalmente, temos dois vértices 'c' e 'd' restantes, portanto, paramos o algoritmo. Como dois vértices unidos por uma aresta são deixados, esta árvore tem 'cd' bicentral e a árvore é bicentral.

Árvores Rotuladas

Definition- Uma árvore rotulada é uma árvore cujos vértices são atribuídos a números únicos de 1 a n. Podemos contar essas árvores para pequenos valores de n manualmente, de modo a conjeturar uma fórmula geral. O número de árvores rotuladas de n número de vértices é $ n ^ {n-2} $. Duas árvores rotuladas são isomórficas se seus gráficos são isomórficos e os pontos correspondentes das duas árvores têm os mesmos rótulos.

Exemplo

Árvores não rotuladas

Definition- Uma árvore sem rótulo é uma árvore cujos vértices não são atribuídos a nenhum número. O número de árvores rotuladas de n número de vértices é $ \ frac {(2n)!} {(N + 1)! N! } $ ( enésimo número catalão)

Exemplo

Árvore Enraizada

Uma árvore com raiz $ G $ é um grafo acíclico conectado com um nó especial que é chamado de raiz da árvore e toda aresta direta ou indiretamente se origina da raiz. Uma árvore com raiz ordenada é uma árvore com raiz onde os filhos de cada vértice interno são ordenados. Se cada vértice interno de uma árvore enraizada não tiver mais do que m filhos, é chamado de árvore m-ária. Se cada vértice interno de uma árvore enraizada tiver exatamente m filhos, é chamado de árvore m-ária completa. Se $ m = 2 $, a árvore com raiz é chamada de árvore binária.

Árvore de pesquisa binária

A árvore de pesquisa binária é uma árvore binária que satisfaz a seguinte propriedade -

  • $ X $ na subárvore esquerda do vértice $ V, Valor (X) \ le Valor (V) $
  • $ Y $ na subárvore direita do vértice $ V, Valor (Y) \ Valor ge (V) $

Assim, o valor de todos os vértices da subárvore esquerda de um nó interno $ V $ são menores ou iguais a $ V $ e o valor de todos os vértices da subárvore direita do nó interno $ V $ são maiores ou iguais a $ V $. O número de links do nó raiz ao nó mais profundo é a altura da árvore de pesquisa binária.

Exemplo

Algoritmo para procurar uma chave no BST

BST_Search(x, k) 
if ( x = NIL or k = Value[x] ) 
   return x; 
if ( k < Value[x]) 
   return BST_Search (left[x], k); 
else  
   return BST_Search (right[x], k)

Complexidade da árvore de pesquisa binária

Caso Médio Pior caso
Complexidade do Espaço Em) Em)
Complexidade de pesquisa O (log n) Em)
Complexidade de Inserção O (log n) Em)
Complexidade de exclusão O (log n) Em)