freeCodeCamp/guide/portuguese/computer-science/data-structures/trees/index.md

72 lines
2.9 KiB
Markdown

---
title: Trees
localeTitle: Árvores
---
# Árvores
Uma estrutura de dados em árvore pode ser definida recursivamente (localmente) como uma coleção de nós (começando em um nó raiz), onde cada nó é uma estrutura de dados que consiste em um valor, junto com uma lista de referências a nós (os "filhos") , com as restrições de que nenhuma referência é duplicada e nenhuma aponta para a raiz. Uma árvore sem nós é chamada de árvore nula ou vazia.
Uma árvore binária é uma estrutura de dados não linear que consiste em nós, onde cada nó possui os seguintes 3 componentes:
**Elemento de dados** : armazena qualquer tipo de dados no nó **Ponteiro esquerdo** : aponta para a subárvore no lado esquerdo do nó **Ponteiro** para a **direita** : aponta para a subárvore no lado direito do nó Como o nome sugere, o elemento de dados armazena qualquer tipo de dado no nó. Os ponteiros esquerdo e direito apontam para árvores binárias no lado esquerdo e direito do nó, respectivamente.
Se uma árvore estiver vazia, ela é representada por um ponteiro nulo.
## Terminologia usada nas árvores:
**Raiz** : O nó superior de uma árvore.
**Criança** : Um nó conectado diretamente a outro nó ao se afastar da raiz.
**Pai** : A noção inversa de uma criança.
**Irmãos** : Um grupo de nós com o mesmo pai.
**Descendente** : Um nó acessível por processo repetido de pai para filho.
**Antepassado** : Um nó acessível por processo repetido de filho para pai.
**Filial** (nó interno): Um nó de uma árvore que possui nós filhos.
**Folha** (menos comumente chamado de nó externo): Um nó sem filhos.
**Grau** : O número de subárvores de um nó.
**Borda** : A conexão entre um nó e outro.
**Caminho** : Uma sequência de nós e arestas conectando um nó com um descendente.
**Nível** : O nível de um nó é definido por 1 + (o número de conexões entre o nó e a raiz).
**Altura da árvore** : A altura de uma árvore é a altura do seu nó raiz.
**Profundidade** : A profundidade de um nó é o número de arestas do nó raiz da árvore para o nó.
**Floresta** : Uma floresta é um conjunto de árvores disjuntas n ≥ 0.
### Alguns tipos populares de árvores:
* Árvore binária
* Árvore de busca binária
* Árvore AVL
* Árvore negra vermelha
* Árvore Splay
* Huffmann Tree
### Usos comuns
* Representando dados hierárquicos
* Armazenar dados de uma maneira que facilite a pesquisa
* Representando listas de dados classificadas
* Algoritmos de roteamento
### Código de um nó de árvore
\`\` \`c\_cpp nó de estrutura { dados int; // elemento de dados struct node \* esquerda; // Ponteiro para o nó esquerdo struct node \* direito; // Ponteiro para o nó direito };
\`\` \`
#### Mais Informações:
* [Notas da lição da CMU](http://www.cs.cmu.edu/~clo/www/CMU/DataStructures/Lessons/lesson4_1.htm)
* [Wikipedia](https://en.wikipedia.org/wiki/Tree_(data_structure))