Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDavi Bento Alencar Alterado mais de 8 anos atrás
1
1 de outubro de 2015 1 Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães
2
Árvores binárias onde os elementos são organizados de forma que: 23/janeiro/2001 2 Árvore de Busca Binária katia@cin.ufpe.br Todos os elementos na sub-árvore esquerda de cada nó k têm valor menor ou igual ao valor no nó k. Todos os elementos na sub-árvore direita de cada nó k têm valor maior do que o valor no nó k.
3
Árvore binária onde os elementos são organizados de forma que: 23/janeiro/2001 3 Árvore de Busca Binária katia@cin.ufpe.br y < xz > x x
4
Exemplo: 50, 20, 39, 8, 79, 26, 58, 15, 88, 4, 85, 96, 71, 42, 53. 23/janeiro/2001 4 Árvore de Busca Binária katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 5371 88 8596
5
Estrutura de dados dinâmica, com recuperação em tempo logarítmico. 23/janeiro/2001 5 Árvore de Busca Binária katia@cin.ufpe.br 1 2 3 4
6
Ocorre sempre em uma folha. 23/janeiro/2001 6 Inserção em Árvores de Busca katia@cin.ufpe.br Procedimento Inclui (raiz, x): Se raiz então se elemento na raiz > x então Inclui (esquerda, x) senão Inclui (direita, x) senão { aloque espaço para um nó; coloque x neste nó; retorne apontador novo nó}
7
Exemplo: 50, 20, 39, 8, 79, 26, 58, 15, 88, 4, 85, 96, 71, 42, 53. 23/janeiro/2001 7 Árvore de Busca Binária katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 5371 88 8596
8
Nem sempre ocorre em uma folha. 23/janeiro/2001 8 Remoção em Árvore de Busca katia@cin.ufpe.br Procedimento Remove (raiz, x) EndNó Busca ( x ); Se ¬ EndNó então relate insucesso
9
Exemplo: Remove (raiz, 60) 23/janeiro/2001 9 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 5371 88 8596 raiz
10
Nem sempre ocorre em uma folha. 23/janeiro/2001 10 Remoção em Árvores de Busca katia@cin.ufpe.br Procedimento Remove (raiz, x) EndNó Busca ( x ); Se ¬ EndNó então relate insucesso senão se EndNó é folha (¬ esq AND ¬ dir ) então apague apontador pai;
11
Exemplo: Remove (raiz, 53) 23/janeiro/2001 11 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 5371 88 8596 raiz
12
Exemplo: Remove (raiz, 53) 23/janeiro/2001 12 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 71 88 8596 raiz
13
23/janeiro/2001 13 Remoção em Árvores de Busca katia@cin.ufpe.br Procedimento Remove (raiz, x) EndNó Busca ( x ); Se ¬ EndNó então relate insucesso senão se EndNó é folha (¬ esq AND ¬ dir ) então apague apontador pai; senão se ¬ esq OR ¬ dir então faça pai de x apontar para filho x
14
Exemplo: Remove (raiz, 58) 23/janeiro/2001 14 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 58 71 88 8596 raiz
15
Exemplo: Remove (raiz, 58) 23/janeiro/2001 15 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 71 88 8596 raiz
16
23/janeiro/2001 16 Remoção em Árvores de Busca katia@cin.ufpe.br Procedimento Remove (raiz, x) EndNó Busca ( x ); Se ¬ EndNó então relate insucesso senão se EndNó é folha (¬ esq AND ¬ dir ) então apague apontador pai; senão se ¬ esq OR ¬ dir então faça pai de x apontar para filho x senão substitua x pelo seu sucessor
17
Exemplo: Remove (raiz, 20) 23/janeiro/2001 17 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 79 71 88 8596 raiz Onde está o sucessor de 20?
18
Onde está o sucessor de um elemento cujo nó tem filho à direita? 23/janeiro/2001 18 Remoção em Árvore de Busca katia@cin.ufpe.br 50 20 8 415 39 2642 raiz Um passo à direita. Tantos passos à esquerda quantos sejam necessários. Note que o nó deste elemento não tem filho à esquerda.
19
Exemplo: Remove (raiz, 20) 23/janeiro/2001 19 Remoção em Árvore de Busca katia@cin.ufpe.br 50 26 8 415 39 42 raiz O pai do sucessor apontará para o seu filho à direita do sucessor.
20
Exemplo: 50, 20, 39, 42, 40... 23/janeiro/2001 20 Possível Problema katia@cin.ufpe.br 50 20 39 42 A árvore binária pode degenerar para uma estrutura próxima a uma lista ligada, e o tempo de acesso deixa de ser logarítmico.
21
Procurar manter todas as folhas mais ou menos na mesma altura. 23/janeiro/2001 21 Solução katia@cin.ufpe.br PROPRIEDADE AVL: Para todo nó | altura(dir) - altura(esq) | < 2
22
Exemplo: 50, 20, 10,... 23/janeiro/2001 22 Possível Problema katia@cin.ufpe.br 50 20 Após a inserção do elemento 10, a árvore binária perde a propriedade AVL. SOLUÇÃO: Rotação. 10
23
Inserção à esquerda de árvore desbalanceada à esquerda (bal = -1) 23/janeiro/2001 23 Rotação Simples à Direita katia@cin.ufpe.br Promover o elemento do meio através de um giro no sentido horário. 50 20 10 20 10 50
24
Inserção à direita de árvore desbalanceada à direita (bal = +1) 23/janeiro/2001 24 Rotação Simples à Esquerda katia@cin.ufpe.br Promover o elemento do meio através de um giro no sentido anti-horário. 50 20 10 20 50
25
Inserção à direita de árvore desbalanceada à direita (bal = +1) 23/janeiro/2001 25 Rotação Simples à Esquerda katia@cin.ufpe.br Nó crítico (+1) 60 30 50 90 70 95 90 70 95 30 50 60
26
Inserção à direita de árvore desbalanceada à esquerda (bal = -1) 23/janeiro/2001 26 Rotação Dupla katia@cin.ufpe.br Promover o elemento que desbalanceia tanto à esquerda quanto à direita. 50 20 30 2050
27
Inserção à direita de árvore desbalanceada à direita (bal = +1) 23/janeiro/2001 27 Rotação Dupla katia@cin.ufpe.br Nó crítico (+1) 60 30 50 90 70 65 60 30 50 90 70 65
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.