Aula de ExercciosEstrutura de Dados e Algoritmos
20/03/2014
Jos Claudivan
Ramon Bezerra
rvore Preto-Vermelha
rvore Preto-Vermelha Caractersticas
Possui uma caracterstica particular: cor do n;
balanceada a partir de invariantes, restries pelas cores dos ns;
Uma rvore preto-vermelho com n ns internos tem no mximo a altura de h 2.lg(n+1).
rvore Preto-Vermelha Caractersticas
Cada n possui uma cor: ou preta ou vermelha
Toda folha (NIL) preta
A raiz preta
Todos os filhos de um n vermelho so pretos
Black-Height: Todo caminho simples de um n a uma folha descendente contm o mesmo nmero de ns ( NIL) pretos.
rvore Preto-Vermelha Exemplo
rvore Preto-Vermelha Casos de ajuste
Para um novo n (Vermelho), temos:
Caso 1: Se o novo n uma raiz, deve ser preto.
Caso 2: Se o novo n no uma raiz, seu pai deve ser preto.
Caso 3: Se pai do novo n vermelho, o pai e o tio devem ser pretos e oav do n deve ser vermelho. Depois, verifica-se o Caso 1 para o av.
Caso 4: Se o novo n filho direita e o pai filho esquerda, aplica-serotao no pai do novo n esquerda, e vice-versa.
Caso 5: Se o novo n e o pai so filhos direita, o pai deve ser preto e oav vermelho. Depois, aplica-se a rotao no av do novo n esquerda.
rvore Preto-Vermelha Exerccio
1. Insira os seguintes valores em uma arvore PV inicialmente vazia e mostre a rvore (incluindo a cor dos ns) aps cada operao: 41, 38, 31, 12, 19, 8.
Demonstrao: trees.jar
rvore Preto-Vermelha Exerccio
2. Insira um n com chave 8 na rvore abaixo. Se o n for colorido de vermelho, a rvore obtida PV? E se for colorido de preto?
Demonstrao: trees.jar
rvore Preto-Vermelha Exerccio
3. Se a raiz de uma rvore PV tem cor vermelha e a alteramos para preto, a rvore continua sendo PV? E se fossa a situao inversa?
rvore Preto-Vermelha Exerccio
3. Se a raiz de uma rvore PV tem cor vermelha e a alteramos para preto, a rvore continua sendo PV? E se fossa a situao inversa?
Sim, pois obedece a propriedade de que a raiz tem que ser preta, se fosse o contrrio e a raiz passasse a ser vermelha infringiria nessa mesma propriedade, logo no seria PV.
rvore Preto-Vermelha Exerccio
4. Qual a altura mxima de uma rvore PV com altura preta igual a 4?
A altura mxima nesse caso ser 7 para o BH = 4.
rvore B
rvore B Caractersticas
Assegura todas as folhas no mesmo nvel;
Possui um nmero mximo de filhos para cada n (pgina);
Em cada n guardado uma lista de elementos (LinkedList);
rvore B Propriedades
Para uma rvore B de ordem m, temos:
Cada n tem no mximo m filhos;
O nmero mnimo de filhos de um n interno m/2;
O nmero mximo de elementos (chaves) em um n (pgina) m-1;
A raiz pode ser folha ou ter no mnimo dois filhos;
Todas as folhas esto no mesmo nvel;
Um n interno com k filhos tem, no mximo, k-1 elementos;
Os elementos (chaves) de cada n servem como separadores dos filhos, de acordo com sua ordem.
O n raiz possui entre 1 e 2m elementos.
rvore B Exemplo
Qual a ordem da rvore B a seguir?
rvore B Exemplo
Qual a ordem da rvore B a seguir? 4
rvore B Exemplo
Qual a ordem da rvore B a seguir?
rvore B Exemplo
Qual a ordem da rvore B a seguir? 4
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
Considerando que a rvore B sempre completa, temos:
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
Considerando que a rvore B sempre completa, temos:
1 n
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
Considerando que a rvore B sempre completa, temos:
1 n
... 20 ns
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
Considerando que a rvore B sempre completa, temos:
1 n
... 20 ns
... 400 ns
rvore B Exerccios 5. Qual o nmero mximo de elementos que podem ser armazenados em umarvore B de ordem 20 com altura 2? Justifique sua resposta.
Ordem da rvore = 20; Altura da rvore = 2;
N mximo de chaves por n = 19.
Considerando que a rvore B sempre completa, temos:
1 n
... 20 ns
... 400 ns
Somando os ns, temos:
1+20+400 = 421 ns
Se cada n tem 19 chaves, ento:
400x19 = 7999 elementos
rvore B Exerccios 6. Considerando a representao abaixo de rvore B, implemente um mtodo(usando recurso) que retorna o maior elemento armazenado em uma rvore B.Faa a anlise do algoritmo.
rvore B Exerccios 6. Considerando a representao abaixo de rvore B, implemente um mtodo(usando recurso) que retorna o maior elemento armazenado em uma rvore B.Faa a anlise do algoritmo.
Busca, caso seja o ltimo n, o ltimo elemento da lista interna.
Seno, busca o ltimo n da rvore, sempre pela direita.
rvore B Exerccios 6. Considerando a representao abaixo de rvore B, implemente um mtodo(usando recurso) que retorna o maior elemento armazenado em uma rvore B.Faa a anlise do algoritmo.
Mtodo externo, chamando a busca pelo maior elemento a partir da raiz.
rvore B Exerccios 7.Considerando a ordem alfabtica, mostre o resultado da insero dos elementosF,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E nessa ordem. Considere a rvore B deordem 3.
Desenhe a rvore aps a insero de cada elemento.
rvore B Exerccios 7.Considerando a ordem alfabtica, mostre o resultado da insero dos elementosF,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E nessa ordem. Considere a rvore B deordem 3.
Desenhe a rvore aps a insero de cada elemento.
insert(S)
F S
insert(Q)
F Q S
OVERFLOW!
split()
F S
Q
insert(F)
F
rvore B Exerccios 7.Considerando a ordem alfabtica, mostre o resultado da insero dos elementosF,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E nessa ordem. Considere a rvore B deordem 3.
Desenhe a rvore aps a insero de cada elemento.
insert(K)
S
Q
F K
insert(C)
S
Q
C F K
OVERFLOW!
split()
S
F Q
KC
insert(L)
S
F Q
C K L
rvore B Exerccios 7.Considerando a ordem alfabtica, mostre o resultado da insero dos elementosF,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E nessa ordem. Considere a rvore B deordem 3.
Desenhe a rvore aps a insero de cada elemento.
insert(H)
S
F Q
C H K L
OVERFLOW!
split()
S
F K Q
C
OVERFLOW!
H L
split()
F Q
K
C SH L
...
Cartesian Tree
Cartesian Tree Exerccios8. Qual o formato da cartesian tree aps a insero dos seguintes nmeros: 12, 8, 4,
10, 25, 30, 9, 2, 15, 17. Demonstre passo a passo as inseres de cada elemento.
12 8
insert(8)lastElement = 12
12 8
insert(4)lastElement = 8
12
4
8
insert(10)lastElement = 4
12
4
10
insert(12)lastElement = null
Cartesian Tree Exerccios8. Qual o formato da cartesian tree aps a insero dos seguintes nmeros: 12, 8, 4,
10, 25, 30, 9, 2, 15, 17. Demonstre passo a passo as inseres de cada elemento.
insert(30)lastElement = 25
10
25
8
insert(9)lastElement = 30
12
4
10
8
insert(25)lastElement = 10
12
4
10
25
8
12
4
30
9
25
30
Cartesian Tree Exerccios8. Qual o formato da cartesian tree aps a insero dos seguintes nmeros: 12, 8, 4,
10, 25, 30, 9, 2, 15, 17. Demonstre passo a passo as inseres de cada elemento.
8
insert(2)lastElement = 9
12
4
10
2
8
insert(15)lastElement = 2
12
4
10
2
9
25
30
15
8
insert(17)lastElement = 15
12
4
10
2
9
25
30
15
179
25
30
Cartesian Tree Exerccios8. Qual o formato da cartesian tree aps a insero dos seguintes nmeros: 12, 8, 4,
10, 25, 30, 9, 2, 15, 17. Demonstre passo a passo as inseres de cada elemento.
PERCURSO EM ORDEM =
SEQUNCIA NUMRICA
Cartesian Tree Exerccios9. Ainda do exerccio anterior, qual o RMQ(Range Minimum Query) da subsequncia
{12, 8, 4, 10}? e qual o LCA(Lowest Commom Ancestor) entre 30 e 15?
RMQ(12,10) = ?
Cartesian Tree Exerccios9. Ainda do exerccio anterior, qual o RMQ(Range Minimum Query) da subsequncia
{12, 8, 4, 10}? e qual o LCA(Lowest Commom Ancestor) entre 30 e 15?
RMQ(12,10) = 4
Cartesian Tree Exerccios9. Ainda do exerccio anterior, qual o RMQ(Range Minimum Query) da subsequncia
{12, 8, 4, 10}? e qual o LCA(Lowest Commom Ancestor) entre 30 e 15?
LCA(30,15) = ?
Cartesian Tree Exerccios9. Ainda do exerccio anterior, qual o RMQ(Range Minimum Query) da subsequncia
{12, 8, 4, 10}? e qual o LCA(Lowest Commom Ancestor) entre 30 e 15?
LCA(30,15) = 2
Referncias rvore Preto-Vermelha
https://3917994b-a-a6606a5f-s-sites.googlegroups.com/a/computacao.ufcg.edu.br/edaufcg/cronograma/Arvore%20PV.pdf?attachauth=ANoY7cpSNc1tmbr92wHf1u7TKOBmqJWUkIWFC9v5_nzF97tkisQAC_qbN85TYbRDdKanTx2bOD22JSsQ9R7r7-9g4BBZ-ySsAePQRy6IcTLE7HPIkIDjIrOdZ-ia-6qy7f775cIoHTFZZ7fXNTcOXntzycWVaSv1C1Y0jUd8I8aW3HTV8i6fFrYPTAbBcwGHCCYyAjzasTbjbCFcQaQeUsxYfE-L4gNH_6etLYIB1ahp28hDO6Itbdo%3D&attredirects=1
http://www.ufjf.br/jairo_souza/files/2012/11/5-Indexa%C3%A7%C3%A3o-Arvore-Vermelho-Preta.pdf
https://3917994b-a-a6606a5f-s-sites.googlegroups.com/a/computacao.ufcg.edu.br/edaufcg/cronograma/Arvore PV.pdf?attachauth=ANoY7cpSNc1tmbr92wHf1u7TKOBmqJWUkIWFC9v5_nzF97tkisQAC_qbN85TYbRDdKanTx2bOD22JSsQ9R7r7-9g4BBZ-ySsAePQRy6IcTLE7HPIkIDjIrOdZ-ia-6qy7f775cIoHTFZZ7fXNTcOXntzycWVaSv1C1Y0jUd8I8aW3HTV8i6fFrYPTAbBcwGHCCYyAjzasTbjbCFcQaQeUsxYfE-L4gNH_6etLYIB1ahp28hDO6Itbdo=&attredirects=1http://www.ufjf.br/jairo_souza/files/2012/11/5-Indexa%C3%A7%C3%A3o-Arvore-Vermelho-Preta.pdfReferncias rvore B
https://3917994b-a-a6606a5f-s-sites.googlegroups.com/a/computacao.ufcg.edu.br/edaufcg/cronograma/Arvore%20B.pdf?attachauth=ANoY7cqZmgKksqFtUeEJBi_YyBHgUM5cXbKQOV3U9opI1uxJcQaUCEAFZ1yEx9R-hfLMl1wHneZq3S9VCZtXeTe3M95OybTTnBtyGMCL-nesuO46UWBod0VZafbfzy_sn6wtjsyruSMJhoj_QTKL2v2M5CaY8R-9qi9TDL-ZdzLaQZqYvqyuruLJNsRcKPAGAPyUHORzF_NsZN48QRnbd2LD_o_97As1pudLxsOtovdarUcHbSjzGwk%3D&attredirects=0
http://www.ufjf.br/jairo_souza/files/2012/11/5-Indexa%C3%A7%C3%A3o-Arvore_B.pdf
https://3917994b-a-a6606a5f-s-sites.googlegroups.com/a/computacao.ufcg.edu.br/edaufcg/cronograma/Arvore B.pdf?attachauth=ANoY7cqZmgKksqFtUeEJBi_YyBHgUM5cXbKQOV3U9opI1uxJcQaUCEAFZ1yEx9R-hfLMl1wHneZq3S9VCZtXeTe3M95OybTTnBtyGMCL-nesuO46UWBod0VZafbfzy_sn6wtjsyruSMJhoj_QTKL2v2M5CaY8R-9qi9TDL-ZdzLaQZqYvqyuruLJNsRcKPAGAPyUHORzF_NsZN48QRnbd2LD_o_97As1pudLxsOtovdarUcHbSjzGwk=&attredirects=0http://www.ufjf.br/jairo_souza/files/2012/11/5-Indexa%C3%A7%C3%A3o-Arvore_B.pdfReferncias Cartesian Tree
Material Anexo (Estgio Docncia)