Árvore (Tree)
Definição
Uma Árvore (Tree) é uma estrutura de dados hierárquica composta por nós (nodes), em que cada um pode ter zero ou mais filhos e um único pai (exceto a raiz).
O primeiro nó da árvore é chamado de raiz. Os nós que não têm filhos são chamados de folhas. As árvores são amplamente utilizadas para representar relações hierárquicas, como sistemas de arquivos, estruturas de DOM, expressões matemáticas e muito mais.
Por que usar
Árvores são úteis quando precisamos representar dados com estrutura em níveis ou relações pai-filho. Alguns usos comuns:
- Organização de menus e hierarquias;
- Compiladores (análise sintática de expressões);
- Estruturas de indexação (como árvores binárias de busca ou B-Trees);
- Bancos de dados, sistemas de arquivos, inteligência artificial (árvores de decisão).
Exemplo prático — Árvore binária de busca (Java)
Abaixo, um exemplo simples de árvore binária em Java, com inserção e exibição em ordem:
class Node {
int valor;
Node esquerda;
Node direita;
Node(int valor) {
this.valor = valor;
}
}
public class ArvoreBinaria {
Node raiz;
public void inserir(int valor) {
raiz = inserirRec(raiz, valor);
}
private Node inserirRec(Node atual, int valor) {
if (atual == null) return new Node(valor);
if (valor < atual.valor)
atual.esquerda = inserirRec(atual.esquerda, valor);
else
atual.direita = inserirRec(atual.direita, valor);
return atual;
}
public void emOrdem(Node node) {
if (node != null) {
emOrdem(node.esquerda);
System.out.print(node.valor + " ");
emOrdem(node.direita);
}
}
public static void main(String[] args) {
ArvoreBinaria arvore = new ArvoreBinaria();
arvore.inserir(8);
arvore.inserir(3);
arvore.inserir(10);
arvore.inserir(1);
arvore.inserir(6);
arvore.emOrdem(arvore.raiz); // Saída: 1 3 6 8 10
}
}
Esse exemplo mostra uma árvore binária de busca, onde valores menores vão para a esquerda e maiores para a direita.
8
/ \
3 10
/ \
1 6