Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
MC-202 — Unidade 11Árvores de Afunilamento
Lehilton Pedrosa
Instituto de Computação – Unicamp
Segundo Semestre de 2016
. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Roteiro
1 Introdução
2 Localidade e Referência
3 Árvore de Afunilamento
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 2 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Carlos : 3234 2322Leo : 92923 2932José : 92832 3936Ana : 99129 4323Maria : 9992 3432Daniel : 99381 3824Bia : 3323 3432
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?Resposta: Uma árvore balanceada?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Carlos : 3234 2322Leo : 92923 2932José : 92832 3936Ana : 99129 4323Maria : 9992 3432Daniel : 99381 3824Bia : 3323 3432
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?Resposta: Uma árvore balanceada?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Carlos : 3234 2322Leo : 92923 2932José : 92832 3936Ana : 99129 4323Maria : 9992 3432Daniel : 99381 3824Bia : 3323 3432
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?
Resposta: Uma árvore balanceada?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Ana
Bia Daniel
Carlos
José
Maria
Leo
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?Resposta: Uma árvore
balanceada?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Ana
Bia Daniel
Carlos
José
Maria
Leo
0
-1
-1
-1
+1
00
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?Resposta: Uma árvore balanceada
?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdução
Ana
Bia Daniel
Carlos
José
Maria
Leo
0
-1
-1
-1
+1
00
No nosso aparelho celular, temos diversos contatos.
Pergunta: Que estrutura é a mais adequada para guardar os dados?Resposta: Uma árvore balanceada?
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 3 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
Contando acessos
Chamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
0Acessos:
Contando acessos
Chamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
0Acessos:
Contando acessosChamamos Maria
, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
1Acessos:
Contando acessosChamamos Maria
, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
2Acessos:
Contando acessosChamamos Maria
, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
2Acessos:
Contando acessosChamamos Maria
, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
3Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
4Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
5Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
5Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
6Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
7Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
8Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
9Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
9Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
10Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
11Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
12Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
13Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
13Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
17Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana
, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
21Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana
, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
25Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana
e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
33Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
33Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico:
Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Verificando nossa escolha
Ana
Bia Daniel
Carlos
José
Maria
Leo
33Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana e Ana
Diagnóstico: Acessamos um certo elemento várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 4 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modificando a árvore
Ana
Bia Daniel
Carlos
José
Maria
Leo
Vamos modificar a árvore:
trazemos o elemento mais recente para cima!
Pergunta: A árvore é balanceada? Não!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 5 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modificando a árvore
Ana
Bia Daniel
Carlos
José
Maria
Leo
Vamos modificar a árvore: trazemos o elemento mais recente para cima!
Pergunta: A árvore é balanceada? Não!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 5 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modificando a árvore
Ana
Bia Daniel
Carlos
José
Maria
Leo
Vamos modificar a árvore: trazemos o elemento mais recente para cima!
Pergunta: A árvore é balanceada? Não!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 5 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modificando a árvore
Ana
Bia Daniel
Carlos
José
Maria
Leo
Vamos modificar a árvore: trazemos o elemento mais recente para cima!
Pergunta: A árvore é balanceada?
Não!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 5 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modificando a árvore
Ana
Bia Daniel
Carlos
José
Maria
Leo
+3
0
0
0
+1
00
Vamos modificar a árvore: trazemos o elemento mais recente para cima!
Pergunta: A árvore é balanceada? Não!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 5 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
0Acessos:
Contando acessosChamamos
Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
3Acessos:
Contando acessosChamamos Maria
, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
7Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
7Acessos:
Contando acessosChamamos Maria, Daniel
, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
8Acessos:
Contando acessosChamamos Maria, Daniel, Ana
, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
9Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana
, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
10Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana
, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
11Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana
, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
12Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana
, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
13Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana
, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
13Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana
, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
14Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria
, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
15Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria
, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
15Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria
, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
15Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria
, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
18Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria
,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
21Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria
, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
24Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria
, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
27Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
30Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
9999Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
9999Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico:
Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contando de novo
Ana
Bia Daniel
Carlos
José
Maria
Leo
9999Acessos:
Contando acessosChamamos Maria, Daniel, Ana, Ana, Ana, Ana, Ana, Ana, Maria, Maria,Maria, Maria, Maria...
Diagnóstico: Acessamos os mais recentes várias vezes!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 6 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Localidade de Referência
Princípio da localidadeÉ o princípio que um mesmo elemento que um certo elemento é acessadomuitas vezes por um curto período de tempo. Acontece de várias maneiras:
temporal: um elemento acessado recentemente tende a ser acessadonovamente em breveespacial: se um dado foi acessado em certa parte da memória, locaispróximos tendem a ser acessados em breve
Exemplosconjuntos dinâmicoscódigo de um programadados de um registro
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 7 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Localidade de Referência
Princípio da localidadeÉ o princípio que um mesmo elemento que um certo elemento é acessadomuitas vezes por um curto período de tempo. Acontece de várias maneiras:
temporal: um elemento acessado recentemente tende a ser acessadonovamente em breveespacial: se um dado foi acessado em certa parte da memória, locaispróximos tendem a ser acessados em breve
Exemplosconjuntos dinâmicoscódigo de um programadados de um registro
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 7 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Localidade de Referência
Princípio da localidadeÉ o princípio que um mesmo elemento que um certo elemento é acessadomuitas vezes por um curto período de tempo. Acontece de várias maneiras:
temporal: um elemento acessado recentemente tende a ser acessadonovamente em breveespacial: se um dado foi acessado em certa parte da memória, locaispróximos tendem a ser acessados em breve
Exemplosconjuntos dinâmicoscódigo de um programadados de um registro
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 7 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Árvore de Afunilamento (Splay Tree)
Splay Treeintroduzida por Daniel Dominic Sleator and Robert Endre Tarjan(1985)tenta fazer com que elementos mais recentementes acessados estejamperto da raiz
DefiniçãoUm Splay Tree é alguma árvore de busca cuja implementação usa aoperação de afunilamento.
CaracterísticaPior caso de uma busca: O(n)Pior caso de k operações consecutivas: O(k log(n))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 8 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Árvore de Afunilamento (Splay Tree)
Splay Treeintroduzida por Daniel Dominic Sleator and Robert Endre Tarjan(1985)tenta fazer com que elementos mais recentementes acessados estejamperto da raiz
DefiniçãoUm Splay Tree é alguma árvore de busca cuja implementação usa aoperação de afunilamento.
CaracterísticaPior caso de uma busca: O(n)Pior caso de k operações consecutivas: O(k log(n))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 8 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Árvore de Afunilamento (Splay Tree)
Splay Treeintroduzida por Daniel Dominic Sleator and Robert Endre Tarjan(1985)tenta fazer com que elementos mais recentementes acessados estejamperto da raiz
DefiniçãoUm Splay Tree é alguma árvore de busca cuja implementação usa aoperação de afunilamento.
CaracterísticaPior caso de uma busca: O(n)Pior caso de k operações consecutivas: O(k log(n))
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 8 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
8
3 13
1 7 10
4
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
8
3 13
1 7 10
4
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
8
3 13
1 7 10
4
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
8
3 13
1
7
104
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
8
3
13
1
7 10
4
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principal operação: afunilar
AfunilarAfunilar um nó é um operação que transforma um né em raiz.
83
131 7
10
4
Exemplo: Afunilar o 4.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 9 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ideia
Afunilar nó xFazemos rotações dependendo do caso:
1 x é raiz2 Caso zig: pai de x é raiz3 Caso zig-zig: pai e avô alinhados4 Caso zig-zag: pai e avô não alinhados
Algoritmo: Enquanto x não for raiz, escolhe rotação adequada.
Observação: Nossa implementação usará nós com ponteiro para o nó pai!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 10 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ideia
Afunilar nó xFazemos rotações dependendo do caso:
1 x é raiz2 Caso zig: pai de x é raiz3 Caso zig-zig: pai e avô alinhados4 Caso zig-zag: pai e avô não alinhados
Algoritmo: Enquanto x não for raiz, escolhe rotação adequada.
Observação: Nossa implementação usará nós com ponteiro para o nó pai!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 10 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ideia
Afunilar nó xFazemos rotações dependendo do caso:
1 x é raiz2 Caso zig: pai de x é raiz3 Caso zig-zig: pai e avô alinhados4 Caso zig-zag: pai e avô não alinhados
Algoritmo: Enquanto x não for raiz, escolhe rotação adequada.
Observação: Nossa implementação usará nós com ponteiro para o nó pai!
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 10 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 2: zig (pai de x é raiz)
x
A
α βαγ
raiz
Procedimento
Rotaciona na direção da raiz.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 11 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 2: zig (pai de x é raiz)
x
A
α βαγ
raiz
x
Aα
β
α
γ
raiz
rotacionar
ProcedimentoRotaciona na direção da raiz.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 11 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 3: zig-zig (pai de x na mesma direção do avô)
x
B
βα
γ
A
δ
Procedimento
Rotaciona avô e depois pais na mesma direção.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 12 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 3: zig-zig (pai de x na mesma direção do avô)
x
B
βα
γ
Rotacionar2 nós de uma só vez!
A
δ
x
B
β
α
γ
A
δ
ProcedimentoRotaciona avô e depois pais na mesma direção.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 12 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 4: zig-zag (pai de x na mesma oposta à do avô)
x
B
β
α
γ
A
δ
Procedimento
Rotaciona pai na direção do pai e depois avô na direção oposta.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 13 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Caso 4: zig-zag (pai de x na mesma oposta à do avô)
x
B
β
α
γ
rotacionar
A
δ
x
B
βα γ
A
δ
ProcedimentoRotaciona pai na direção do pai e depois avô na direção oposta.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 13 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação em CAfunilarvoid afunilar(NoArv **r, NoArv *x) {
// enquanto não chega na raizwhile( *r != x ) {
// caso zigif (x->pai == *r) {
...}
else {NoArv *pai = x->pai, *avo = pai->pai;// caso zig-zigif ((x==pai->esq && pai==avo->esq) ||
(x==pai->dir && pai==avo->dir) ) {...
// caso zig-zag} else {
...}
}}
}
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 14 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação em CAfunilarvoid afunilar(NoArv **r, NoArv *x) {
// enquanto não chega na raizwhile( *r != x ) {
// caso zigif (x->pai == *r) {
...} else {
NoArv *pai = x->pai, *avo = pai->pai;
// caso zig-zigif ((x==pai->esq && pai==avo->esq) ||
(x==pai->dir && pai==avo->dir) ) {...
// caso zig-zag} else {
...}
}}
}
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 14 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação em CAfunilarvoid afunilar(NoArv **r, NoArv *x) {
// enquanto não chega na raizwhile( *r != x ) {
// caso zigif (x->pai == *r) {
...} else {
NoArv *pai = x->pai, *avo = pai->pai;// caso zig-zigif ((x==pai->esq && pai==avo->esq) ||
(x==pai->dir && pai==avo->dir) ) {...
// caso zig-zag} else {
...}
}}
}
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 14 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Implementação em CAfunilarvoid afunilar(NoArv **r, NoArv *x) {
// enquanto não chega na raizwhile( *r != x ) {
// caso zigif (x->pai == *r) {
...} else {
NoArv *pai = x->pai, *avo = pai->pai;// caso zig-zigif ((x==pai->esq && pai==avo->esq) ||
(x==pai->dir && pai==avo->dir) ) {...
// caso zig-zag} else {
...}
}}
}
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 14 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Operações de Conjunto
Operações básicasBuscar:
1 Inserir em árvore de busca2 Se encontrou, afunilar elemento acessado
Inserir:1 Inserir em árvore de busca2 Afunilar elemento inserido
Remover:1 Buscar elemento e guardar o pai se houver2 Remover elemento3 Se houver pai, afunilar o pai
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 15 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Operações de Conjunto
Operações básicasBuscar:
1 Inserir em árvore de busca2 Se encontrou, afunilar elemento acessado
Inserir:1 Inserir em árvore de busca2 Afunilar elemento inserido
Remover:1 Buscar elemento e guardar o pai se houver2 Remover elemento3 Se houver pai, afunilar o pai
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 15 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Operações de Conjunto
Operações básicasBuscar:
1 Inserir em árvore de busca2 Se encontrou, afunilar elemento acessado
Inserir:1 Inserir em árvore de busca2 Afunilar elemento inserido
Remover:1 Buscar elemento e guardar o pai se houver2 Remover elemento3 Se houver pai, afunilar o pai
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 15 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .
Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T . Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T . Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T . Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T .
Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T . Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outras operaçõesSuponha que todos os elementos de S são menores que os elementos de T .Como criar uma árvore com a união?
Juntar(S , T )1 Encontrar nó x que é máximo de S2 Afunilar o nó x3 Fazer T ser filho direito de x
Suponha que temos um número n uma árvore T . Como separar elementosmenores ou iguais n dos maiores que n?
Separar(T , n):1 Buscar nó x que é o maior elemnto menor ou igual a n2 Afunilar x3 Fazer T o filho direito de x4 Fazer S a árvore remanescente.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 16 / 17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exercício
1 A ordem das rotações nos passos zig-zig e zig-zag é importante para mantero bom balanceamento da árvore. Em cada caso, quem deve ser rotacionadoprimeiro: pai ou avô?
2 Desenhe a árvore splay-tree que é obtida a partir de uma árvore vazia após:a inserção de elementos 1, 3, 5, 7, 8, busca do elemento 3 e busca doelemento 8.
Lehilton Pedrosa (IC/Unicamp) MC-202 — Unidade 11 Segundo Semestre de 2016 17 / 17