A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INF 1010 Estruturas de Dados Avançadas

Apresentações semelhantes


Apresentação em tema: "INF 1010 Estruturas de Dados Avançadas"— Transcrição da apresentação:

1 INF 1010 Estruturas de Dados Avançadas
17/10/2011 INF 1010 Estruturas de Dados Avançadas Árvores 2-3 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

2 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Características Árvores 2-3 Cada nó armazena 1 ou 2 chaves Cada nó interno possui 2 ou 3 filhos São balanceadas Não dependem de operações de rotação Balanceamento é garantido diretamente pelas operações de inserção e remoção 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

3 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Características Árvores 2-3 (cont.) São árvores de busca Nó interno com 2 filhos Nó interno com 3 filhos 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

4 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Caminhamento Caminhamento em Ordem Infixa (esboço) Caminhe pela subárvore da esquerda. Imprima a menor chave (que pode ser a única). Caminhe pela subárvore do meio. Imprima a maior chave, se existir. Caminhe pela subárvore da direita, se existir. 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

5 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Busca Exemplo: Busca por “130” 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

6 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Algoritmo de Inserção (esboço) Localize a folha onde a nova chave será inserida. Divida a folha, se necessário. Divida nós internos, recursivamente, se necessário. 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

7 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Algoritmo de Inserção (cont.) Se a folha já tem 2 chaves, divida a folha Mova a “chave do meio” para o pai 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

8 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Algoritmo de Inserção (cont.) Se o pai já tem 2 chaves, divida o pai Mova a “chave do meio” para o pai do pai 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

9 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Algoritmo de Inserção (cont.) Se a raiz já tem 2 chaves, crie nova raiz Mova a “chave do meio” para a nova raiz 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

10 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “39” Localize a folha onde “39” deve ser inserida A folha só tem 1 chave: insira “39” 39 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

11 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “38” Localize a folha onde “38” deve ser inserida A folha tem 2 chaves: simule a inserção de “38” 38 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

12 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “38” Mova a chave do meio para o pai p Separe o menor e o maior valores em 2 nós, que serão filhos de p 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

13 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “37” Localize a folha onde “37” deve ser inserida A folha só tem 1 chave: insira “37” 37 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

14 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “36” Localize a folha onde “36” deve ser inserida A folha já tem 2 chave: Simule a inserção de “36” 36 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

15 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “36” Simule mover a chave do meio para o pai p Simule criar 2 novos filhos de p 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

16 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Inserção Inserção de “36” Divida o nó p Mova a chave do meio para o pai de p Os nós com as chaves menor e maior formam novos nós Redistribua os 4 filhos de p entre os novos nós 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

17 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas • 2011.2
Exercício Ilustre como fica a árvore 2-3, inicialmente vazia, com a seguinte sequência de inserções: 1, 2, 3, 4, 5, 6 e 7. 17/10/2011 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas •

18 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas • 2011.2
Exercício Algoritmo de busca struct node { int x, y; Node *l, *m, *r; }; y = -1, significa ausência de valor. 17/10/2011 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas •

19 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (esboço) Se a chave a ser removida pertencer a uma folha, Remova a chave. Se a chave a ser removida pertencer a um nó interno Troque a chave com a sua sucessora (que necessariamente está em uma folha). Remova a chave (da folha). Redistribua e combine nós. 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

20 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Redistribua – Casos 1 e 2 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

21 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Redistribua – Casos 3 e 4 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

22 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Combine – Casos 5 e 6 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

23 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Combine – Caso 7 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

24 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Redistribua – Caso 8 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

25 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Redistribua – Caso 9 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

26 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Combine – Caso 10 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

27 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova e Combine – Caso 11 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

28 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Algoritmo de Remoção (cont) Remova a raiz – Caso 12 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

29 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Remoção de “65” O nó que contém “65” é interior Troque “65” com a sua sucessora 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

30 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Remoção de “65” Remova “65” Como a folha possui 2 chaves, é possível remover “65” 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

31 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Remoção de “70” O nó que contém “70” é interior Troque “70” com a sua sucessora 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

32 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Remoção de “70” Remova “70” 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

33 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas • 2012.1
Remoção Remoção de “70” A árvore torna-se inválida Combine nós 17/10/2011 © 2012 DI, PUC-Rio • Estruturas de Dados Avançadas •

34 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas • 2011.2
Resumo Árvores 2-3 Cada nó armazena 1 ou 2 chaves Cada nó interno possui 2 ou 3 filhos Algoritmos de inserção e remoção mantém as árvores balanceadas Caso especial de Árvores-B 17/10/2011 © 2011 DI, PUC-Rio • Estruturas de Dados Avançadas •


Carregar ppt "INF 1010 Estruturas de Dados Avançadas"

Apresentações semelhantes


Anúncios Google