Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Conceitos básicos de árvores binárias, Notas de estudo de Estruturas de Dados e Algoritmos

Conceitos básicos de árvores binárias

Tipologia: Notas de estudo

2019

Compartilhado em 20/11/2019

marcos-henrique-ribeiro
marcos-henrique-ribeiro 🇧🇷

1

(1)

7 documentos

1 / 10

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Página
1
de
9
LICENCIATURA EM COMPUTAÇÃO EAD UEPG - ESTRUTURA DE DADOS AULA 3
Professores Albino Szesz Junior e Márcio Augusto de Souza
ESTRUTURA DE DADOS
AULA 3 – ÁRVORES
1
INTRODUÇÃO
Uma árvore é uma estrutura que armazena dados de forma hierárquica. Por exemplo, a
figura 1 mostra um trecho de um organograma de uma pequena faculdade, onde existe uma
hierarquia entre os dados, de maneira que não é possível representar esse tipo de
informação através de uma lista linear, por exemplo.
Figura 1: Exemplo de árvore (Fonte: https://organograma.net)
Com exceção do elemento no topo da árvore, cada elemento da árvore tem um pai e
um ou mais filhos. Uma árvore é normalmente desenhada colocando-se os elementos dentro
de círculos ou retângulos e conectando-se pais e filhos com linhas retas. Normalmente, o
elemento do topo é chamado
raiz
da árvore, mas é desenhado acima dos demais, os quais
ficam conectados abaixo da raiz.
Figura 2: Exemplo de árvore
A figura 2 mostra um exemplo de uma árvore, na qual:
A é a raiz da árvore
B, C e E são filhos de A
B é pai de D e F.
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Conceitos básicos de árvores binárias e outras Notas de estudo em PDF para Estruturas de Dados e Algoritmos, somente na Docsity!

Professores Albino Szesz Junior e Márcio Augusto de Souza

ESTRUTURA DE DADOS

AULA 3 – ÁRVORES

1 INTRODUÇÃO

Uma árvore é uma estrutura que armazena dados de forma hierárquica. Por exemplo, a figura 1 mostra um trecho de um organograma de uma pequena faculdade, onde existe uma hierarquia entre os dados, de maneira que não é possível representar esse tipo de informação através de uma lista linear, por exemplo.

Figura 1: Exemplo de árvore (Fonte: https://organograma.net) Com exceção do elemento no topo da árvore, cada elemento da árvore tem um pai e um ou mais filhos. Uma árvore é normalmente desenhada colocando-se os elementos dentro de círculos ou retângulos e conectando-se pais e filhos com linhas retas. Normalmente, o elemento do topo é chamado raiz da árvore, mas é desenhado acima dos demais, os quais ficam conectados abaixo da raiz.

Figura 2: Exemplo de árvore A figura 2 mostra um exemplo de uma árvore, na qual:

  • A é a raiz da árvore
  • B, C e E são filhos de A
  • B é pai de D e F.

Professores Albino Szesz Junior e Márcio Augusto de Souza Assim como os termos pai e filho, são também usados os termos irmão, avô, neto, nós ancestrais e nós descendentes.

Toda árvore, por sua estrutura, é constituída por árvores menores, chamadas subárvores. A figura 3 mostra que, ligadas ao nó A, existem três subárvores, enraizadas em B, C e E, respectivamente. A subárvore enraizada em B é mostrada em destaque.

Figura 3: Exemplo de subárvore

2 PROPRIEDADES BÁSICAS E TERMINOLOGIA

Definição: Uma árvore T é um conjunto de nós que armazena elementos em relacionamentos pai-filho com as seguintes propriedades:

  • T tem um nó especial, r , chamado de raiz de T.
  • Cada nó v de T, que não seja raiz, tem um pai u.
  • Se T =Ø, a árvore é vazia.

Em uma árvore T , o grau de um nó corresponde ao número de subárvores (ou de descendentes diretos) relacionadas àquele nó. Um nó de grau zero não possui subárvores. Esse nó é chamado de folha. Na figura 2, o nó A tem grau 3, e os nós D, E, F e G são folhas.

Definição: A sequência de nós v 1 , v 2 , ..., v k , tal que v i é pai de v i +1, para 1≤ i < k , é chamada caminho de v 1 para v k. O comprimento de um caminho é dado por k -1. Por exemplo, na figura 2, existe um caminho que liga A até D com comprimento 2: A, B e D.

Professores Albino Szesz Junior e Márcio Augusto de Souza

2

Em uma árvore binária estritamente binária, todo nó que não é folha tem subárvores esquerda e direita não vazias. A figura 5 mostra um exemplo desse tipo de árvore binária.

Figura 5: Árvore estritamente binária Uma árvore estritamente binária com n nós e altura h tem as seguintes propriedades:

  • O número de nós de T é no máximo 2 h+1^ − 1 e no mínimo 2ℎ + 1.
  • A profundidade ou altura de T é pelo menos log 2 (n + 1)^ − 1 e no máximo n^ -^1.
  • O número máximo de folhas é 2 h^ e o mínimo é ℎ + 1.

Numa árvore binária completa de profundidade h , todas as folhas estão no nível h. A figura 6 mostra um exemplo desse tipo de árvore binária. Deve-se ressaltar que essa árvore também é estritamente binária.

Figura 6: Árvore binária completa Uma árvore binária completa é uma árvore estritamente binária na qual o número de nós, altura e número de folhas são máximos.

Professores Albino Szesz Junior e Márcio Augusto de Souza

4.2 Percurso Percurso ou caminhamento em uma árvore é uma forma sistemática de acessar ou visitar todos os seus nós. Existem três tipos de percurso, os quais são citados nas próximas subseções. A árvore binária da figura 7 é usada como referência para exemplificar os três percursos.

Figura 7: Exemplo de árvore binária

4.2.1 Pré-fixado O percurso pré-fixado ou em pré-ordem obedece aos seguintes passos:

  • Visita a raiz;
  • Percorre a subárvore esquerda em ordem pré-fixada;
  • Percorre a subárvore direita em ordem pré-fixada. Considerando a árvore binária da figura 7, a sequência resultante do percurso em ordem pré-fixada é: A, B, D, C, E, G, F, H, I.

4.2.2 Inter-fixado O percurso inter-fixado (ou em ordem simétrica) obedece aos seguintes passos:

  • Percorre a subárvore esquerda em ordem inter-fixada;
  • Visita a raiz;
  • Percorre a subárvore direita em ordem inter-fixada. Considerando a árvore binária da figura 7, a sequência resultante do percurso em ordem pré-fixada é: D, B, A, E, G, C, H, F, I.

4.2.3 Pós-fixado O percurso pós-fixado (ou em pós-ordem) obedece aos seguintes passos:

  • Percorre a subárvore esquerda em ordem pós-fixada;

Professores Albino Szesz Junior e Márcio Augusto de Souza

Figura 9: Exemplo de árvore binária representado uma expressão aritmética

5 ESTRUTURAS DE DADOS PARA REPRESENTAR ÁRVORES

5.1 Estrutura baseada em arranjo para árvores binárias Uma estrutura simples para se representar uma árvore binária T é baseada em uma forma de numerar os nós de T. Para cada nó v de T, faça-se p( v ) ser um inteiro definido como segue:

  • Se v for a raiz de T, então p(v)=1.
  • Se v for o filho esquerdo do nó u, então p(v)=2*p(u).
  • Se v for o filho direito do nó u, então p(v)=2*p(u)+1. A figura 10 apresenta um exemplo de uma árvore binária inserida em um arranjo.

a) Árvore binária

Professores Albino Szesz Junior e Márcio Augusto de Souza

1 2 3 4 5 6 7 8 9 1 0

b) Arranjo contendo a árvore binára Figura 10: Exemplo de árvore binária armazenada em um arranjo Cada um dos nós da árvore é armazenado na posição correspondente do vetor. Esta implementação é simples, mas pode ser ineficiente em termos de consumo de espaço. Perceba que na figura 10, várias posições do arranjo estão vazias (por exemplo, 14 e 15), e esse problema aumenta à medida que a altura da árvore cresce

5.2 Estrutura encadeada para árvores binárias 5.2.1 Árvores binárias Nesta abordagem, a cada nó estão associados: o elemento armazenado e ponteiros para os filhos esquerdo e direito. Da mesma maneira que em listas encadeadas, não há desperdício de memória, pois os nós da árvore são alocados à medida que são necessários. Como exemplo, considere a figura 11, que apresenta uma árvore binária e a sua respectiva representação encadeada.

Figura 11: Árvore binária implementada usando alocação dinâmica

Professores Albino Szesz Junior e Márcio Augusto de Souza

Figura 12: Árvore binária de busca desbalanceada A eficiência de busca da árvore binária mostrada na figura 11 é melhor do que a da figura 12. Por exemplo, imagine que se queira buscar o número 70, no primeiro caso seriam necessários apenas 3 passos (10, 50 e 70), enquanto que no segundo caso seriam necessários 6 passos (5, 10, 20, 30, 50 e 70). Para garantir que todas abbs sejam sempre semelhantes à da figura 11, usam-se técnicas de inserção que mantêm a árvore balanceada. Exemplos desse tipo de árvore são as árvores AVL e rubro-negra.