Buscar

Aula 9_Árvores 2-3 e Árvores 2-3-4

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Árvores 2-3 
e Árvores 2-3-4
Lívia N. Andrade
Introdução
Em uma árvore binária, cada nó possui um item de dado e pode ter até dois filhos.
Se permitirmos o uso de mais itens de dados e filhos por nó, o resultado é uma árvore Multivias ou M-vias (multiway tree).
Árvores 2-3 são interessantes por várias razões:
São árvores balanceadas
Fáceis de programar
Servem como uma introdução para árvores B
2
Árvores 2-3
As árvores 2-3, são árvores multivias, um caso especial de árvore B. 
Nestas árvores, os números 2 e 3 referem-se aos números de filhos que a árvore pode ter:
pode ter um item de dados e dois filhos e no máximo dois itens de dados e três filhos por nó.
Assim como na árvore B, todos os nós folhas se localizam no mesmo nível.
Porque não há árvores 1-2-3?
Porque não pode ter um nó não-folha com apenas um filho.
3
Exemplo - árvore 2-3
25
 1 23
 80
0
21 22
24
70 72
90 92
A figura abaixo mostra uma pequena árvore 2-3.
Cada nó pode conter um ou dois itens de dados.
4
Operações em Árvore 2-3
Pesquisa
Inserção
Remoção
5
Ideia básica para a pesquisa
Semelhante à pesquisa na árvore B.
A pesquisa inicia-se sempre pela raiz. 
Se o item procurado não estiver na raiz, identifique o nó filho da raiz em que ele pode estar e siga para este nó.
Se ele não estiver neste outro nó, identifique em qual nó filho deste nó o item poderá estar, e siga para este nó.
O processo se repete até que o item seja encontrado ou até um nó folha ser encontrado.
6
Exemplo 1: Pesquisa Árvore 2-3
Pesquisando pelo item 72 na árvore 2-3 abaixo.
25
 1 23
 80
0
21 22
24
70 72
90 92
Item 72 não está na raiz. 
O item 72 é maior do que o item que está na raiz, siga para o nó filho da direita
7
Exemplo 1: Pesquisa Árvore 2-3
Pesquisando pelo item 72 na árvore 2-3 abaixo.
25
 1 23
 80
0
21 22
24
70 72
90 92
Item 72 não está neste nó. 
O item 72 é menor do que o item que está neste nó, siga para o nó filho da esquerda
8
Exemplo 1: Pesquisa Árvore 2-3
Pesquisando pelo item 72 na árvore 2-3 abaixo.
25
 1 23
 80
0
21 22
24
70 72
90 92
Este nó possui mais itens.
Verifique, em todos os itens existentes, se algum deles é o item 72.
 O item é encontrado.
Retorne então o nó e a posição que o item se localiza neste nó.
9
Ideia básica para a inserção
Semelhante à inserção na árvore B
Quando ocorre a tentativa de inserção de um item em uma página folha cheia, a página folha é então dividida em duas páginas folha, o item do meio sobe para a página pai, e os elementos com chave menores ficam na página folha da esquerda e os itens com chaves maiores na página folha da direita.
10
Exemplo 2: Inserção Árvore 2-3
Insira item 50 na árvore 2-3 abaixo.
25
10 20
27 32
25
10 20
27 32
50
Página folha está cheia.
Solução: Dividir a página e subir o elemento do meio para a página pai
11
Exemplo 2: Inserção Árvore 2-3
Insira item 50 na árvore 2-3 abaixo.
25
10 20
27 32
25 32
10 20
27 
50
12
Exemplo 3: Inserção Árvore 2-3
Insira item 5 na árvore 2-3 abaixo.
5
Página folha está cheia.
Solução: Dividir a página e subir o elemento do meio para a página pai
25 32
10 20
27 
50
25 32
10 20
27 
50
13
Exemplo 3: Inserção Árvore 2-3
Insira item 5 na árvore 2-3 abaixo.
10
25 32
10 20
27 
50
25 32
20
27 
50
Página raiz também está cheia.
Solução: Dividir a página e subir o elemento do meio para a nova página raiz.
5
14
Exemplo 3: Inserção Árvore 2-3
Insira item 5 na árvore 2-3 abaixo.
25 32
10 20
27 
50
32
20
27 
50
5
25
10
15
Exercício de Inserção
Inserir as seguintes chaves em um árvore 2-3: 
25, 80, 1, 22, 0, 24, 70, 90, 23, 21, 72, 92, 78, 98, 20.
Árvore 2-3 resultante
80
23
72 
92
1
25
21
0
20
22
24
70
78
90
98
16
Idéia básica da Exclusão 
Semelhante à remoção na árvore B.
Primeiro pesquise a chave para ter a certeza de que esta existe na árvore.
Se existir, verifique se está em folha, e faça a exclusão.
Se após a exclusão algum nó ficar com apenas um filho, a árvore deve modificar sua estrutura para que todos os nós tenham pelo menos 2 filhos e todos os nós folhas no mesmo nível.
17
Exemplo 4: Exclusão Árvore 2-3
Remover item 73.
80
23
72 
92
1
25
21
0
20
22
24
70 73
78
90
98
18
Exemplo 4: Exclusão Árvore 2-3
Remover item 73.
80
23
72 
92
1
25
21
0
20
22
24
70 
78
90
98
19
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
23
72 
92
1
25
21
0
20
22
24
70
78
90
98
20
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
23
72 
92
1
25
21
0
22
24
70
78
90
98
Erro!
Nó não pode ter apenas um filho.
Solução: junte o item do único filho com o item do nó pai
21
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
23
72 
92
 0 1
25
21
22
24
70
78
90
98
ERRO!
Assim como na árvore B, os nós folhas devem estar todos no mesmo nível.
Solução: agrupar os nós folhas, para que todas as folhas fiquem no mesmo nível.
22
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
72 
92
 0 1
25
21 23
22
24
70
78
90
98
23
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
70 72 78 
90 92 98
 0 1
25
21 23
22
24
ERRO!
Os nós podem ter no máximo 2 itens de dados
Solução: levar o menor elemento da subárvore da direita para a raiz, e descer o item da raiz para a subárvore da esquerda
24
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
80
 72 78 
90 92 98
 0 1
70
21 23
22
24 25
ERRO!
Os nós podem ter no máximo 2 itens de dados.
Solução: levar o menor elemento da subárvore da direita para a raiz, e descer o item da raiz para a subárvore da esquerda.
25
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
90
72 78 80 
 92 98
 0 1
70
21 23
22
24 25
ERRO!
Os nós podem ter no máximo 2 itens de dados.
Solução: levar o menor elemento da subárvore da direita para a raiz, e descer o item da raiz para a subárvore da esquerda.
26
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
90
78 80 
 92 98
 0 1
72
21 23
22
24 25 70
ERRO!
Os nós podem ter no máximo 2 itens de dados.
Solução: levar o menor elemento da subárvore da direita para a raiz, e descer o item da raiz para a subárvore da esquerda.
27
Exemplo 5: Exclusão Árvore 2-3
Remover item 20.
90
78 80 
 92 98
 0 1
72
21 24
22 23
 25 70
28
Exemplo 5: Exclusão Árvore 2-3
Árvore inicial
Árvore após remoção do item 20
90
 78 80 
92 98
 0 1
72
21 24
22 23
25 70
80
23
72 
92
1
25
21
0
20
22
24
70
78
90
98
29
Árvores 2-3-4
As árvores 2-3-4, são também árvores multivias.
Nestas árvores, os números 2, 3 e 4 referem-se aos números de filhos que a árvore pode ter:
Nó com 1 item possui 2 filhos
Nó com 2 itens possui 3 filhos
Nó com 3 itens possui 4 filhos
Porque não há árvores 1-2-3-4?
Porque não pode ter um nó não-folha com apenas um filho.
30
Operações em Árvore 2-3-4
Pesquisa
Semelhante a pesquisa na árvore 2-3
Inserção
Semelhante a pesquisa na árvore 2-3
Remoção
Semelhante a pesquisa na árvore 2-3
31
Exemplo 6: Inserção Árvore 2-3-4
Insira item 70 na árvore 2-3-4 abaixo.
30 50 60
30
60 70
Página cheia.
Solução: dividir a página em duas páginas
50
32
Exemplo 7: Inserção Árvore 2-3-4
Insira os itens 40, 20 e 10 na árvore 2-3-4 abaixo.
30
60 70
50
 20 30 40
60 70
50
Página cheia.
Solução: dividir a página em duas páginas
33
Exemplo 7: Inserção Árvore 2-3-4
Insira os itens 40, 20 e 10 na árvore 2-3-4 abaixo.
30
60 70
50
 10 20 
60 70
30 50
 40
34
Exemplo 8: Inserção Árvore 2-3-4
Insira os itens 55 e 80 na árvore 2-3-4 abaixo.
 10 20 
60 70
30 50
 40
 10 20 
55 60 70
30 50
 40
Página cheia.
Solução: dividir a página em duas páginas
35
Exemplo 8: Inserção Árvore 2-3-4
Insira os itens 55 e 80 na árvore 2-3-4 abaixo.
 10 20 
60 70
30 50
 40
 10 20 
55 
30 50 60
 40
70 80
36
Exemplo 9: Inserção Árvore 2-3-4
Insira os itens 62 e 75 na árvore 2-3-4 abaixo.
 10 20 
55 
30 50 60
 40
62 70 80
Página cheia.
Solução: dividir a página em duas páginas
 10 20 
55 
30 50 60
 40
70 80
37
Exemplo 9: Inserção Árvore 2-3-4
Insira os itens 62 e 75 na árvore 2-3-4 abaixo.
 10 20 
60 70
30 50
 40
 10 20 
55 
30 50 60
 40
62 
Página cheia.
Solução: dividir a página em duas páginas
75 80
70
38
Exemplo 9: Inserção Árvore 2-3-4
Insira os itens 62 e 75 na árvore
2-3-4 abaixo.
 10 20 
60 70
30 50
 40
 10 20 
55 
30
 40
62 
75 80
50 
 60 70
39
Exercício de Inserção Árvore 2-3-4
Mostre a árvore 2-3-4 resultante após a inserção das chaves abaixo:
 7, 10, 12, 3, 5, 8, 4, 6, 9, 11,13, 21, 22, 14, 15, 16, 17, 18, 19, 20, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23
40
Exemplo 10: Remoção Árvore 2-3-4
Remover o item 50 na árvore 2-3-4 abaixo.
 10 15 
70 75
20 30
 25
90
50 
80
 40
 10 15 
 20 30 80
 25
90
 40 70 75
Os dois filhos da raiz são unidos e árvore é reconfigurada
41
Exemplo 11: Remoção Árvore 2-3-4
Remover o item 30 na árvore 2-3-4 abaixo.
 10 15 
 20 30 80
 25
90
 40 70 75
O item 
30 é substituido pelo item 40
 10 15 
 20 40 80
 25
90
 70 75
42
Exemplo 12: Remoção Árvore 2-3-4
Remover o item 40 na árvore 2-3-4 abaixo.
As duas páginas folhas do item removido são agrupadas em uma página
 10 15 
 20 40 80
 25
90
 70 75
 10 15 
 20 80
90
 25 70 75
43
Referências Utilizadas
Livro:
	
ZIVIANI, Nivio, Projeto de algoritmos com implementação em Pascal e C, 3a. edição, Editora Thomson, 2011
Notas de aula da disciplina, disponível no Moodle.
44

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando