• Nenhum resultado encontrado

POS 3 arvore binaria

N/A
N/A
Protected

Academic year: 2021

Share "POS 3 arvore binaria"

Copied!
36
0
0

Texto

(1)

Professor MSc. Ciro Meneses Santos

Professor MSc. Ciro Meneses Santos

P

P

ó

ó

s Gradua

s Gradua

ç

ç

ão em Adm de Redes

ão em Adm de Redes

(2)

• TAD – Nivelamento Conceitual

• Árvore Binária de Busca

•Inserir

•Remover

•Localizar

•Caminhamento

• Árvore Balanceada AVL

•Fator de balanceamento

•Rotação

Conte

(3)

TAD

(4)

Definições:

É um tipo abstrato de dados que herdas as características

das topologias em árvore, utilizado para o armazenamento de dados na memória do computador e a sua subsequente recuperação.

De acordo com Knuth(1997, p 312) Uma árvore Binária A é um conjunto finito de N nós que ou esta vazio ou consistem de um nó chamado raiz mais os elementos de duas árvores binária distintas chamadas de subárvore esquerda e subárvore direita do nó raiz. Cada elemento da árvore conduz a um ou mais elementos.

TAD

(5)

Uma vez que cada nó tem no máximo

dois filhos, cada um destes nós (se houverem) são identificados segundo a sua posição relativa à raiz;

Em uma árvore binária de busca cada nó contém um campo chamado chave, podendo haver outras

informações, além dos ponteiros esquerdo e direito.

esq chave dir

nil nil nil nil nil nil nil nil

TAD

(6)

Cada elemento da Árvore é denominado Nó (ou vértice).

Nível 0: Nó raiz.

Nível 1: Nós acessados pela raiz.

Nível 2: Nós acessados a partir dos Nós do nível 1. ...

Nó Pai: O Antecessor.

Nó Filho: O apontado pelo Nó pai. Nó Folha: Nó sem filhos.

Nós internos: Nó com filho(s).

Grau da Árvore: O número máximo de filhos para os nó de uma

Tipos Abstratos de Dados

Tipos Abstratos de Dados

Á

(7)

Nível (h) Nós (n) 0 1 2 3 1 2 4 8 Š O número de nós externos de A é 2h.

TAD

(8)

Busca

Busca

Dado um valor X, deseja-se localizar, se existir,

um nó na árvore binária de busca cujo chave

seja igual X.

A busca inicia pelo nó raiz. Quando a busca

chega a um nó qualquer da árvore, ou esse nó já

contém o valor procurado e a busca termina,

ou ele contém um valor menor ou maior que X.

Isso orienta o prosseguimento da busca em

(9)

Para buscar o valor 3. 3 5 4 6 8 7 3 3 nil

nil nil nil nil nil nil

Busca

(10)

Algoritmo Estrutura

Algoritmo Estrutura

typedef struct _no{ int chave;

int cont;

struct _no *esq, *dir; } no;

(11)

no* busca(no *arvore, int x){ if (arvore == NULL) return NULL; if (x == arvore->chave) return arvore; if (x < arvore->chave) return busca(arvore->esq, x); else return busca(arvore->dir, x); }

Busca

Busca

(12)

Inser

Inser

ç

ç

ão

ão

Para inserir um novo elemento X numa árvore binária Busca-se X na árvore.

Caso não esteja já presente, chega-se a um ponteiro nil e insere-se o novo valor.

Se o elemento a inserir já está na árvore, o algoritmo seguinte incrementa um campo chamado count que conta o número de ocorrências desse elemento na

(13)

Algoritmo de inser

Algoritmo de inser

ç

ç

ão

ão

3 5 4 6 8 7 2 2 nil

(14)

Algoritmo de inser

Algoritmo de inser

ç

ç

ão

ão

void insere (int x, no **p){ if (*p == NULL){ *p= (no *) malloc(sizeof(no)); (*p)->chave = x; (*p)->dir = NULL; (*p)->esq = NULL; (*p)->cont = 1; }else{ if (x < (*p)->chave){ insere(x, &(*p)->esq); }if(x > (*p)->chave){ insere(x, &(*p)->dir); }if(x == (*p)->chave){ (*p)->cont++; 1 .. 3 .. 5 .. 7 .. 9 .. 11 . 13 . 14 .

(15)

Remo

Remo

ç

ç

ão

ão

Para remover o nó que contém a informação X,

devemos considerar 3 casos:

Não existe nó na árvore com a informação X. Æ Ok

O nó contendo X tem 0 ou 1 filho

O nó contendo X tem 2 filhos

(16)

Remo

Remo

ç

ç

ão

ão

Para Remover 6, o nó pai do nó removido passa a apontar para nil

3

5

4 6 8

7

nil

nil nil nil nil

6

6

(17)

Remo

Remo

ç

ç

ão

ão

Para Remover 6, o nó pai do nó removido passa a apontar para nil

3

5

4 8

7

nil

nil nil nil nil nil

(18)

Remo

Remo

ç

ç

ão

ão

Para Remover 3, o nó pai do nó removido passa a apontar para filho do no removido.

3

5

4 8

7

nil

nil nil nil nil nill

(19)

Remo

Remo

ç

ç

ão

ão

Para Remover 3, o nó pai do nó removido passa a apontar para filho do no removido.

5

4 8

7

nil nil nil nil nill

(20)

Remo

Remo

ç

ç

ão

ão

Para Remover 4, o nó pai do nó removido passa a apontar para filho do no removido.

8 6 9 nil nil nil nill 4 7 2 nil nil 3

(21)

Remo

Remo

ç

ç

ão

ão

Para Remover 4, o nó com o valor removido é substituído pelo maior valor da subárvore esquerda e transforma o pai do nó em nil. 8 6 9 nil nil nil 3 7 2 nil nil

(22)

Caminhamento

Caminhamento

Pr

Pr

é

é

ordem

ordem

Pré-ordem (

Localizar informação na árvore )

visita raiz;

caminha subárvore esquerda em pré-ordem;

caminha subárvore direita em pré-ordem.

(23)

Caminhamento

Caminhamento

P

P

ó

ó

s

s

-

-

Ordem

Ordem

Pos-Ordem ( Remove node da árvore )

caminha subárvore esquerda em pós-ordem;

caminha subárvore direita em pós-ordem;

visita raiz.

3

(24)

Caminhamento

Caminhamento

Central Ordem

Central Ordem

Central ou InOrdem (

Imprimir elementos em ordem

)

caminha subárvore esquerda na ordem central;

visita raiz;

caminha subárvore direita na ordem central.

Ordem de caminhamento:

(25)

6 15 7 3 2 4 13 9 18 17 20 19 25 16

Caminhamento

Caminhamento

(26)

6 15 7 3 2 4 13 9 18 17 20 19 25 16

Caminhamento

Caminhamento

(27)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Árvore Balanceada

Uma árvore binária balanceada é aquela em que, para qualquer nó, suas sub-árvores esquerda e direita têm a mesma altura.

Árvore AVL

Uma árvore binária de busca onde, para cada nó, as alturas de suas subárvores esquerda e direita diferem de no máximo 1 (-1, 0, 1)

(28)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

A Vantagem de uma árvore AVL sobre uma árvore

degenerada está na maior eficiência nas suas operações de busca, pois, sendo a altura da AVL bem menor, o

número necesssário de comparações diminui sensivelmente.

Por exemplo, numa árovre degenerada de 10.000 nós, são necessárias, em média 5.000 comparações, numa árovre AVL, com o mesmo número de nós essa média baixa para 14.

(29)

Inser

Inser

ç

ç

ão Balanceada

ão Balanceada

Há 4 casos para serem analisados:

Rotação Simples

Rotação simples na subárvore esquerda Rotação simples na subárvore direita

Rotação dupla

Rotação dupla na subárvore esquerda Rotação dupla na subárvore direita

(30)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Toda vez que uma subárvore fica com um fator

negativo e sua subárvore da esquerda também

tem um fator negativo:

(31)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Toda vez que uma subárvore fica com um fator

positivo e sua subárvore da direita também tem

um fator positivo:

(32)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Toda vez que uma subárvore fica com um fator

negativo e sua subárvore da esquerda tem um fator positivo:

solução – ROTAÇÃO DUPLA À ESQUERDA

A Rotação dupla à Esquerda é composta por uma

rotação simples á esquerda, seguida de uma rotação simples à direita.

(33)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Toda vez que uma subárvore fica com um fator

positivo e sua subárvore da direita tem um fator negativo:

solução – ROTAÇÃO DUPLA À DIREITA

A Rotação dupla à Direita é composta por uma

rotação simples á direita, seguida de uma rotação simples à esquerda.

(34)

Á

Á

rvores Balanceadas

rvores Balanceadas

Á

Á

rvores AVL

rvores AVL

Inserção - Exercício

Mostrar as rotações necessárias para a construção da seguinte árvore AVL 

3, 2, 1, 4, 5, 6, 7.

Mostrar as rotações necessárias para a construção da

(35)

Referência

Referência

Bibliografia

Bibliografia

LEISERSON, C E.; STEIN, Clifford; RIVERT, Ronald L.;

CORMEN, Thomas H. Algoritmos: Teoria e Prática – Rio de Janeiro: Campus, 2002.

ZIVIANI, Nivio. Projeto de Algoritmos. São Paulo: Pioneira Thomson Learning, 2005.

SCHILDT, Herbert. - C Completo e Total - MAKRON Books 1997

(36)

Referências

Documentos relacionados

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Após a realização de todas as atividades teóricas e práticas de campo, pode-se concluir que não há grande erosão do conhecimento popular e tradicional de plantas medicinais, que

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Para obter detalhes sobre como montar a unidade principal na parede, consulte as instruções incluídas com o suporte para parede1. Entre em contato com seu revendedor local para

Estudo do Meio (Descoberta das inter-relações entre espaços: o contacto entre a terra e o mar.. Exemplo de abordagem Articulação com conteúdos

Vou expor, na medida do possível, parte da conversa na qualificação que considero interessante para