SlideShare uma empresa Scribd logo
1 de 119
ÁRVORE
2-3
Estrutura de Dados II
Equipe:
Augusto Teixeira
Carlos Littbarski
Jardel Rodrigues
Victor Apuena
Professor:
Alandson Meireles
Informações
- A ÁRVORE 2-3 FOI A PRIMEIRA ÁRVORE MULTICAMINHOS,
INVENTADA POR J. E. HOPCROFT EM 1970.
- 2-3 árvores são uma isometria de árvores AA, o que significa que são
estruturas de dados equivalentes. Em outras palavras, para cada 2-3
árvore, existe pelo menos uma árvore AA com elementos de dados na
mesma ordem. 2-3 árvores são equilibradas, o que significa que cada
direita, centro e sub-árvore esquerda contém o mesmo ou perto da
mesma quantidade de dados.
John E. Hopcroft
Características
- SÃO ÁRVORES FÁCEIS DE PROGRAMAR
- SÃO ÁRVORES MULTIVIAS
- NÃO É UMA ÁRVORE BINÁRIA
- ÁRVORES 2-3 SÃO SIMILARES ÀS ÁRVORES 2-3-4.
- 2-3 DIZEM A RESPEITO À QUANTIDADE DE FILHOS QUE A ÁRVORE PODE TER
(ASSIM COMO NA 2-3-4)
- PERFEITAMENTE BALANCEADA
Vantagens
- Árvore perfeitamente balanceada
- Busca rápida
- Fácil implementação
- Remoção demorada
Desvantagens
Propriedades
- Cada nó contém uma, ou duas chaves;
- Cada nó interno tem dois filhos se tem uma chave, ou três se tem duas chaves;
- Todas as folhas estão no mesmo nível.
- Todos os dados são ordenados
NÓ COM 1 FILHO
a a b
P Q NÓ COM 2 FILHOS
P Q R
Vamos brincar? *-*
INSERÇÃO
Inserção: Árvore Vazia
Adicionar ‘B’
Inserção: Árvore Vazia
b
Se a Árvore estiver vazia:
Criar um nó e adicionar o valor ao nó
Regra #1
Inserção: Nó com 1 chave
b
Adicionar ‘A’
a
Inserção: Nó com 1 chave
b
Caso contrário, localize o nó a qual o valor pertence.
Se o nó tiver apenas 1 valor, adicione o valor no nó.
a
Regra #2
Regra #3
Inserir chave no nó sempre de forma ordenada.
Inserção: Nó com 2 chave
a b
c
Adicionar ‘C’
Inserção: Nó com 2 chaves
c
Se o nó da folha tiver mais de dois valores, divida o nó e
promova a mediana dos três valores para o pai.
a b
Regra #4
Número de chaves estouradas
Promover a mediana
Quebrar o nó e fazer a ligação
Inserção: Nó com 2 chaves
ca
b
Nºs > que BNºs < que B
Nós com 1 chave devem sempre ter 2 filhos
Inserção: Regras
c
Inserir “D”
a
b
Inserção: Regras
c
Inserir “E”
a
b
d
e
Inserção: Regras
ca
b
d e
Se o nó da folha tiver mais de dois valores, divida o nó e
promova a mediana dos três valores para o pai.Regra #4
Inserção: Regras
ca
b d
e
- Cada nó interno tem dois filhos se tem uma chave, ou três se tem duas chaves;
Inserção: Regras
ca
b d
e Nºs > que BNºs < que B
chaves > que B & < que D
Vamos ver se entendemos tudo?
Árvore vazia. Insira #50
Insira #1
50
Insira #25
1 50
Inserir #25
1 50
25
Limite estourado!
1 5025
#25 Promovido | Árvore Equilibrada
1 50
25
Insira #35
1 50
25
Insira #40
1 35
25
50
40
Limite estourado!
1 35
25
5040
#40 Promovido
1
4025
5035
1
4025
5035
Árvore equilibrada!
1
4025
5035
Só que não!
#Propriedade quebrada
1
4025
5035
- Nó com 2 chaves deve
ter 3 filhos
Nó (35,50) divido
1
4025
5035
Árvore equilibrada! Insira #15
1
4025
5035
1 35
25
50
40
Blz! Insira #10
15
10
1 35
25
50
40
Limite estourado!
1510
1 35
25
50
40
Limite estourado! DE NOVO!!!
15
10
25 40
Limite estourado! DE NOVO!!!
10
Se o pai tem então três
valores, continuar a
dividir e promover,
formando um novo nó
raiz, se necessário
Regra #5
1 35 5015
25
40
Coisa linda de mamãe!!!
10
1 35 5015
Árvore perfeitamente equilibrada.
1 35
25
50
40
15
10
1 35
25
50
40
Insira....
15
10
Chega né? Vamos ao próximo!
1 35
25
50
40
15
10
PESQUISA
Árvore 2-3
▪ Nó Simples:
▪ Contém uma chave e dois links; um link esquerdo para uma
árvore 2-3 que tem chaves menores que a chave do nó; e um
link direto para uma árvore 2-3 que tem chaves maiores;
Árvore 2-3
▪ Nó Duplo:
▪ Contém duas chaves e três links: um link esquerdo para uma
árvore 2-3 que tem chaves menores; e um link do meio para
uma árvore 2-3 que tem chaves entre as duas chaves do nó; e
um link direto para uma árvore 2-3 que tem chaves maiores;
Pesquisa em uma árvore 2-3
- Inicia-se sempre pela raiz;
- Caso o item pesquisado não se encontra na raiz, identifica o nó
filho da raiz em que o mesmo possa estar e siga para este nó;
- Se o item tiver valor maior que a raiz, siga para direita da
árvore, se não vá para esquerda;
- O processo se repete até que o item seja encontrado;
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 18
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 65
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 43
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
Exemplo de pesquisa Árvore 2-3
3
30
29
5010 20
12 18 40 43 7060
Pesquisando o 3
REMOÇÃO
Remoção de uma árvore 2-3
- A remoção um item de uma árvore 2-3 é aproximadamente o inverso do
processo de inserção;
- Para remover um item, devemos primeiro procurar por ele;
- Se o item a ser removido estiver em uma folha com dois itens;
- simplesmente o excluímos;
- o removemos trocando-o item da árvores;
Removendo 45
- procurar número 45
1 35
25
60
10
6545
40 50
15
Removendo número 45
1 35
25
60
10
6545
40 50
15
Removendo número 45
1 35
25
6015
10
6550
40 50
Removendo número 45
1 35
25
6015
10
6550
40 60
Após remover 45
1 35
25
15
10
6550
40 60
Removendo 40
- procurar número 40
1 35
25
15
10
6550
40 60
Removendo número 40
1 35
25
15
10
6550
40 60
Removendo número 40
1 35
25
15
10
6550
35 60
Removendo número 40
1
25
15
10
6550
35 60
Após remover 40
1
25
15
10
6535
60
50
Removendo 1
- procurar número 1
1
25
15
10
6535
60
50
Removendo número 1
1
25
15
10
6535
60
50
Removendo número 1
25
15
10
6535
60
50
Removendo número 1
25
10
6535
60
50
15
Removendo número 1
25
10
6535
60
50
15
Após remover 1
25
10 6535
60
5015
Removendo 10
- procurar número 10
25
10 6535
60
5015
Removendo número 10
25
10 6535
60
5015
Após remover 10
25
6535
60
5015
Removendo 35
- procurar número 35
25
6535
60
5015
Removendo 35
25
6535
60
5015
Após remover 35
25
65
60
5015
Removendo 60
- procurar número 60
25
65
60
5015
Removendo número 60
25
65
60
5015
Removendo número 60
25
65
65
5015
Removendo número 60
25 65
5015
Após remover 60
25
655015
Removendo 65
- procurar número 65
25
655015
Removendo número 65
25
655015
Após remover 65
- procurar número 65
25
5015
Removendo 50
- procurar número 50
25
5015
Removendo número 50
25
5015
Removendo número 50
25
15
Após remover 50
2515
Removendo 25
- procurar número 25
2515
Removendo 15
- procurar número 15
15
REFERÊNCIAS
USP - “Instituto de Matemática e Estatística”. Disponível em:
https://www.ime.usp.br/~gold/cursos/2002/mac2301/aulas/b-arvore/
LAFORE - ESTRUTURA DE DADOS E ALGORÍTMOS EM JAVA - 2ª EDIÇÃO
WIKIPEDIA - https://pt.wikipedia.org/wiki/%C3%81rvore_2-3
Gross, R. Hernández, J. C. Lázaro, R. Dormido, S. Ros (2001). Estructura de Datos
y Algoritmos Prentice Hall
Ellio B. Koffman Paul A. T. Olfgang (2006) : Objetos, Abstração, Estruturas de
dados e projeto usando C++
Muito
obrigado!!!

Mais conteúdo relacionado

Mais procurados

Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Verônica Veiga
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
Análise essencial e análise estruturada
Análise essencial e análise estruturadaAnálise essencial e análise estruturada
Análise essencial e análise estruturadaWagner Bonfim
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de DadosJanynne Gomes
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Pesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoPesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switchCarlos Veiga
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de buscaRicardo Bolanho
 
Cabeamento 2 visão geral do cabeamento estuturado
Cabeamento 2   visão geral do cabeamento estuturadoCabeamento 2   visão geral do cabeamento estuturado
Cabeamento 2 visão geral do cabeamento estuturadoPaulo Fonseca
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Bináriaselliando dias
 

Mais procurados (20)

Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local Projeto: Montagem de uma rede local
Projeto: Montagem de uma rede local
 
Gnome sort
Gnome sortGnome sort
Gnome sort
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Árvores Rubro Negras
Árvores Rubro NegrasÁrvores Rubro Negras
Árvores Rubro Negras
 
Tabela Hash
Tabela HashTabela Hash
Tabela Hash
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Análise essencial e análise estruturada
Análise essencial e análise estruturadaAnálise essencial e análise estruturada
Análise essencial e análise estruturada
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de Dados
 
Sistemas digitais
Sistemas digitaisSistemas digitais
Sistemas digitais
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3
 
Pesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - ApresentaçãoPesquisa e Ordenação Aula 01 - Apresentação
Pesquisa e Ordenação Aula 01 - Apresentação
 
Cascateamento de switch
Cascateamento de switchCascateamento de switch
Cascateamento de switch
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de busca
 
Cabeamento 2 visão geral do cabeamento estuturado
Cabeamento 2   visão geral do cabeamento estuturadoCabeamento 2   visão geral do cabeamento estuturado
Cabeamento 2 visão geral do cabeamento estuturado
 
Aula 12 instalação de hardware
Aula 12 instalação de hardwareAula 12 instalação de hardware
Aula 12 instalação de hardware
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Binárias
 
2 3 tree
2 3 tree2 3 tree
2 3 tree
 

Destaque

2-3 Tree, Everything you need to know
2-3 Tree,  Everything you need to know2-3 Tree,  Everything you need to know
2-3 Tree, Everything you need to knowLittbarski Santos
 
A ARVORE QUE NÃO QUERIA MORRER
A ARVORE QUE NÃO QUERIA MORRERA ARVORE QUE NÃO QUERIA MORRER
A ARVORE QUE NÃO QUERIA MORRERMarisa Seara
 
História de uma árvore
História de uma árvoreHistória de uma árvore
História de uma árvorelabeques
 
Parábola do Amor. A Árvore e o Menino
Parábola do Amor. A Árvore e o MeninoParábola do Amor. A Árvore e o Menino
Parábola do Amor. A Árvore e o MeninoAdilson P Motta Motta
 
A HISTORIA DE UMA ARVORE
A HISTORIA DE UMA ARVOREA HISTORIA DE UMA ARVORE
A HISTORIA DE UMA ARVOREMarisa Seara
 
O Ciclo Da áGua
O Ciclo Da áGuaO Ciclo Da áGua
O Ciclo Da áGuaTaniaRaquel
 
História de uma Gotinha de Água
História de uma Gotinha de ÁguaHistória de uma Gotinha de Água
História de uma Gotinha de Águaelisabetemfc
 
Era Uma Vez Uma Gotinha De áGua
Era Uma Vez Uma Gotinha De áGuaEra Uma Vez Uma Gotinha De áGua
Era Uma Vez Uma Gotinha De áGuamaria leite
 

Destaque (13)

2-3 Tree, Everything you need to know
2-3 Tree,  Everything you need to know2-3 Tree,  Everything you need to know
2-3 Tree, Everything you need to know
 
Árvore de amigos
Árvore de amigosÁrvore de amigos
Árvore de amigos
 
Amiga lata amigo rio
Amiga lata amigo rioAmiga lata amigo rio
Amiga lata amigo rio
 
A ARVORE QUE NÃO QUERIA MORRER
A ARVORE QUE NÃO QUERIA MORRERA ARVORE QUE NÃO QUERIA MORRER
A ARVORE QUE NÃO QUERIA MORRER
 
História de uma árvore
História de uma árvoreHistória de uma árvore
História de uma árvore
 
Conto arvore generosa
Conto arvore generosaConto arvore generosa
Conto arvore generosa
 
Parábola do Amor. A Árvore e o Menino
Parábola do Amor. A Árvore e o MeninoParábola do Amor. A Árvore e o Menino
Parábola do Amor. A Árvore e o Menino
 
A HISTORIA DE UMA ARVORE
A HISTORIA DE UMA ARVOREA HISTORIA DE UMA ARVORE
A HISTORIA DE UMA ARVORE
 
A árvore generosa
A árvore generosaA árvore generosa
A árvore generosa
 
O Ciclo Da áGua
O Ciclo Da áGuaO Ciclo Da áGua
O Ciclo Da áGua
 
Slides agua
Slides   aguaSlides   agua
Slides agua
 
História de uma Gotinha de Água
História de uma Gotinha de ÁguaHistória de uma Gotinha de Água
História de uma Gotinha de Água
 
Era Uma Vez Uma Gotinha De áGua
Era Uma Vez Uma Gotinha De áGuaEra Uma Vez Uma Gotinha De áGua
Era Uma Vez Uma Gotinha De áGua
 

Árvore 2-3