Você está na página 1de 6

Introdução

No mundo real existe a necessidade de estrutura-se objetos, documentos e até


mesmo pessoas de modo hierárquico. Por tudo que vimos e sabemos até agora no
mundo computacional só estrutura sequenciais não servem para solucionar a questão de
hierarquia. Eis então que se destaca a estrutura de dados, árvore, que permite a solução
de inúmeros problemas do mundo real no mundo computacional, veja um exemplo bem
prático e cotidiano:
Estas pastas organizam
arquivos e até mesmo outras
pastas dentro delas, que por sua
vez estão organizadas em uma
gaveta, o que facilita na hora de
achar algo, documento, objeto e
por aí vai. A questão é, seria
possível representar ou resolver
esse problema
computacionalmente?

A resposta é, sim! Veja o


exemplo seguinte, todas as pastas
organizam seus respectivos
documentos, e essas pastas por
sua vez estão em outra pasta
chamada “gaveta”.
Este é só um exemplo dos
inúmeros problemas cotidianos
que podem ser resolvidos por meio das árvores. Além disso, as árvores são estruturas
bem simples e eficientes, especialmente se comparada a estruturas mais gerais como os
grafos.
Definição de uma Árvore
Uma árvore nada mais é do que um conjunto finito de elementos denominados
nós que nascem de seu nó principal, também conhecido como raiz, tudo abaixo desta
raiz é denominado subárvore. Exemplo:

Exemplo 1

O número de subárvores de cada nó é chamado de grau, ou seja, o número de


grau de cada nó, é o número de subárvores que ele possui.
Baseado no exemplo 1, o nó B tem grau dois, pois possui duas subárvores, o nó
C tem grau um, pois possui apenas uma única subárvores, o nó Raiz tem grau três pois
possui três subárvores. Enquanto os nós, D, E, F, e G tem grau zero, pois não possui
subárvores.
Nós de grau zero são chamados de nós externos, ou folhas enquanto dos demais
são chamados de Nós internos.
Ainda no exemplo 1, o Nó Raiz, é o nó pai dos nós B, C e E, que por sua vez são
seus descendentes (ou filhos). O nó B possui como descendente os nós D e F que por
sua vez são seus descendentes. Enquanto o nó C é pai de G, que por sua vez é filho de
C. O nó E não possui descendente, ele é apenas filho do Nó raiz, o que faz dele uma
folha.
Todos os nós possuem um nó pai (exceto o nó raiz é claro), mas não
necessariamente um nó filho.
Para se obter o nível de uma árvore, traça uma linha imaginária a cada
ramificação, a cada geração dessa árvore por assim dizer começando da raiz. Ainda com
a imagem anterior, o nó raiz seria nível 0, os nós B, C e E seriam nível 1, e os nós D, F
e G, nível 2.
A altura de um nó é o comprimento do caminho mais longo entre ele e uma
folha, por exemplo, a altura do Nó raiz é dois, pois o caminho mais longo é dele até os
nó D, F e G, e não até o nó folha E. A altura dos nó B e C é um, pois há apenas mais um
nível de nó que seria as próprias folhas. Já a altura dos nós D, F, G e E é zero, pois eles
são a folha.
Vale lembrar de que todas essas definições citadas valem para árvores
balanceadas ou não, o que é o caso da nossa imagem.
O endereço de memória de uma árvore será o endereço de seu nó raiz, pois, é a
partir desta raiz que se acessa todo o resto da árvore, percorrer em busca de um número
por exemplo.
A profundidade é o oposto da altura, na altura calcula-se o caminho mais longo
de um nó até a folha, na profundidade calcula-se o caminho de um nó até a raiz. Logo o
nó Raiz tem profundidade zero, os nós B, C e E tem profundidade um, enquanto os nós
D, F e G tem profundidade dois.

Raiz
Nível: 0
Altura:2 7
Profundidade:0

Nós Internos
Nível: 1
Altura:1 2 8
Profundidade:1

Folhas
Nível: 2
Altura:0 4 6 9
Profundidade:2

Exemplo 2
Representações básicas de uma árvore

1. Diagrama de Inclusão; 2. Diagrama de Barras; 3. Representação Hierárquico; 4.


Representação por parênteses

Imagens refeitas e adaptadas de (SZWARCFITER; MARKENZON, 2009, p. 62 e p. 64).

Árvores binárias

Por definição uma árvore binária nada mais é do que uma árvore em que abaixo
de cada nó existem no máximo duas subárvores.
Uma árvore binária é representada computacionalmente unindo duas estruturas
de nós, onde nessa estrutura deve-se existir um campo para ser a chave (dados), e dois
ponteiros que irão consequentemente apontar para o lado esquerdo e direito da
subárvore seguinte.

Este é o código mais simples da implementação de uma árvore binária


Percursos em árvores binárias

Para todas as formas de percorrer uma árvore iremos considerar a imagem a seguir:
A. O percurso em Pré-Ordem sempre seguirá a ordem:
1. Visitar a raiz
2. Percorrer a sua subárvore da esquerda em pré-ordem.
3. Percorrer a sua subárvore da direita em pré-ordem.
 O percurso da árvore do exemplo seria: A, B, D, C, E, G, F, H, I.

B. O percurso em Ordem simétrica (in-ordem) sempre seguirá a ordem:


1. Percorrer a sua subárvore da esquerda em in-ordem.
2. Visitar a raiz
3. Percorrer a sua subárvore da direita em in-ordem.
 O percurso da árvore do exemplo seria: D, B, A, E, G, C, H, F, I.

C. O percurso em Pós-Ordem sempre seguirá a ordem:


1. Percorrer a sua subárvore da esquerda em pós-ordem.
2. Percorrer a sua subárvore da direita em pós-ordem.
3. Visitar a raiz
 O percurso da árvore do exemplo seria: D, B, G, E, H, I, F, C, A.
Bibliografia
(SONG SIANG , 2008, https://www.ime.usp.br/~song/mac5710/slides/05tree)
(ROMAN NORTON, 2016, https://www.youtube.com/watch?v=eiMMtyRBYCE)
(Szwarcfiter; Markenzon, 2009, p. 61 a p. 64)

Você também pode gostar