A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 Profa. Sandra de Amo GBC053 – BCC 2013-1.

Apresentações semelhantes


Apresentação em tema: "Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 Profa. Sandra de Amo GBC053 – BCC 2013-1."— Transcrição da apresentação:

1 Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 Profa. Sandra de Amo GBC053 – BCC

2 Deleção Se ocupação não fica abaixo do mínimo, deleta, não altera ponteiros, nem nós ancestrais Se ocupação fica abaixo do mínimo Tenta redistribuição com nó vizinho, se possível Caso contrário junta com vizinho à direita ou à esquerda (caso for o último nó).

3 Discussão Redistribuição é vantajosa no caso de deleção: Deixa mais espaço nos nós para futuras inserções (há muito mais inserções do que deleções na prática) Redistribuição entre nós em um nível só é propagada para nós no nível acima.

4 Exemplo: Deleção 2*3* 14 * 16* 19* 20*22* 24* 27*29* 33*34*39*38* Removendo 19* 7*8*5*

5 Deleção: Redistribuição nas folhas Com nó direito Removendo 20* *3* 14 * 16* 20*22* 24* 27*29* 33*34*39*38* 7*8*5*

6 Deleção: Redistribuição nas folhas Com nó direito Removendo 20* *3* 14 * 16* 24* 27*29* 33*34*39*38* 7*8*5* 24 22*

7 Resumo: Deleção da chave X na folha P P tem d elementos (ocupação mínima) Vizinho à direita VD tem d+1 elementos e pai(VD) = pai(P) Remove X de P Obtém página P com d-1 elementos Transfere primeiro elemento Y de VD para última posição de P Seja Z = segundo elemento de VD Seja Pai = pai(VD) = pai(P) Pt i = ponteiro de Pai apontando para VD K i = chave em Pai antes de Pt i Substitui K i por Z

8 Deleção: Redistribuição nas folhas Com nó esquerdo Removendo 33* *3* 14 * 16* 22* 24* 27*29* 33* 7*8*5* 24 35*

9 Deleção: Redistribuição nas folhas Com nó esquerdo Removendo 33* *3* 14 * 16* 22* 24* 27* 7*8*5* 24 35* 29* 29

10 Resumo: Deleção da chave X na folha P P tem d elementos (ocupação mínima) Vizinho à direita VD tem d elementos ou pai(VD) pai(P) ou VD não existe Vizinho à esquerda VE tem d+1 elementos e pai(VE) = pai(P) Remove X de P Obtém página P com d-1 elementos Transfere último elemento Y de VE para primeira posição de P Seja Pai = pai(VE) = pai(P) Pt i = ponteiro de Pai apontando para P K i = chave em Pai antes de Pt i Substitui K i por Y

11 Discussão Distribuição nas folhas vizinhas não acarreta mudança - redução de ocupação dos nós pais Portanto: Nós pais não ficam abaixo da ocupação mínima Não precisam ser juntados nem redistribuídos entre seus vizinhos Não há redução da altura da árvore Modificações não se propagam para nós acima do nó- pai

12 Deleção: Juntando Folhas Com nó à direita 2*3* 14 * 15* 22* 33*34*39*38* Removendo 24* 7*8*5* * 27 27*29*22*27*29* Não dá para redistribuir os vizinhos Tamanho do vizinho direito = d Vizinho à esquerda tem pai diferente JUNTA COM O VIZINHO DA DIREITA 16* 40

13 Deleção: Juntando Folhas Com nó à direita 33*34*39*38* Removendo 24* * 27 27*22*27*29* 27 Quase vazia ! Não dá para distribuir com vizinho 30 2*3* 14 * 15* 7*8*5* 16* 17 40

14 Junção de nós intermediários 2*3* 14 * 16* 33*34*39*38* 7*8*5* * 27 27*22*27*29* Removendo 24* 17 40

15 Deleção: Juntando Folhas Com nó à esquerda 2*3* 14 * 16* 49*50* Removendo 16* 7*5* *46* 47 63* 65*

16 Deleção: Juntando Folhas Com nó à esquerda 2*3* 14 * 16* 49*50* Removendo 16* 7*5* *46* 47 63* 65* Só pode ser a última chave deste nó

17 Deleção: Juntando Folhas Com nó à esquerda 2*3* 14 * 49*50* Removendo 16* 7*5* *46* 47 63* 65*

18 Deleção: Juntando Folhas Com nó à esquerda 2*3* 49*50* Removendo 16* 7*5* *46* 47 63* 65* 7*14*5*

19 Deleção: Juntando Folhas Com nó à esquerda 2*3* 49*50* Removendo 16* 7*5* *46* 47 63* 65* 14* Devem ser juntadas

20 Deleção: Juntando Folhas Com nó à esquerda 2*3* 49*50* Removendo 16* 7*5* *46* 63* 65* 14* 4760

21 Redistribuição em nós intermediários *3*5*7*8*14*16*17*18*20*21*22*24*29*27* 33*34*38*39* Removendo 24* : Existe possibilidade de juntar nós intermediários

22 Redistribuição em nós intermediários *3*5*7*8*14*16*17*18*20*21*22*29*27*33*34*38 * 39* Quase vazia

23 Redistribuição em nós intermediários *3*5*7*8*14*16*17*18*20*21*22*29*27*33*34*38 * 39*

24 Redistribuição em nós intermediários *5*7*8*14*16*17*18*20*21*22*29*27*33*34*38 * 39*

25 Exercícios Escrever algoritmo Junta(Folha1,FolhaD) Escrever algoritmo Junta(Folha1,FolhaE) Escrever algoritmo Distribui(No1,NoD) Escrever algoritmo Distribui(No1,NoE)

26 Exercicio: Remove 16* *3*5*7*8*14*16*17*18*20*21*22*24*29*27* 33*34*38*39* 50

27 Exercicio: Remove 18* *3*5*7*8*14*16*17*18*20*21*22*24*29*27* 33*34*38*39* 50

28 Exercicio: Remove 34* *3*5*7*8*14*16*22*24*29*27*33*34* 50

29 Exercicio: Remove 22* *3*5*7*8*14*16*22*24*29*27*33*34* 50

30 Exercicios Construir algoritmos para: Juntar nó com nó-irmão da direita Juntar nó com nó-irmão da esquerda Distribuir nó intermediário com nó-irmão da direita Distribuir nó intermediário com nó-irmão da esquerda


Carregar ppt "Método de Acesso Dinâmico: B-Tree - Deleção Chaves de busca sem duplicatas AULA 9 Profa. Sandra de Amo GBC053 – BCC 2013-1."

Apresentações semelhantes


Anúncios Google