arvore avl wocode

Upload: chicomaresca

Post on 18-Oct-2015

30 views

Category:

Documents


0 download

TRANSCRIPT

  • rvores

    Monael Pinheiro Ribeiro, M.Sc.

    So Bernardo do Campo 12 de novembro de 2011

    Centro Universitrio da FEI Departamento de Cincia da Computao

    Centro Universitrio da FEI Departamento de Cincia da Computao

  • rvores

    Definio rvore s. f. 1.Bot. Vegetal lenhoso, de tronco alto, que se

    ramifica a maior ou menor altura do solo. 2. Mec., Autom. Pea, geralmente alongada, que serve para transmitir ou receber o movimento nas mquinas. 3. Nut. Colocar mastros: A. uma nau.

    rvore s. f. 1. Vegetal de tronco lenhoso cujos ramos s saem a certa altura do solo. 2. Qualquer representao ou esquematizao que, pelas suas ramificaes, lembre essa planta. 3. Pea principal que transmite o movimento de uma mquina. 4. Mastro completo (de navio). 5. Pot. Navio.

  • rvores

    Definio rvore s. f. 1.Bot. Vegetal lenhoso, de tronco alto, que se

    ramifica a maior ou menor altura do solo. 2. Mec., Autom. Pea, geralmente alongada, que serve para transmitir ou receber o movimento nas mquinas. 3. Nut. Colocar mastros: A. uma nau.

    rvore s. f. 1. Vegetal de tronco lenhoso cujos ramos s saem a certa altura do solo. 2. Qualquer representao ou esquematizao que, pelas suas ramificaes, lembre essa planta. 3. Pea principal que transmite o movimento de uma mquina. 4. Mastro completo (de navio). 5. Pot. Navio.

  • rvores

    Definio

    rvore: no contexto da programao e cincia da computao, uma estrutura de dados que herda as caractersticas das topologias em rvore.

    Conceitualmente diferente das listas encadeadas, em que os dados se encontram numa sequncia, nas rvores os dados esto dispostos de forma hierrquica.

    A rvore composta por um elemento principal chamado raiz, que possui ligaes para outros elementos, que so denominados de galhos ou filhos. Estes galhos levam a outros elementos que tambm possuem outros galhos. O elemento que no possui galhos conhecido como folha ou n terminal.

    Fonte: wikipedia

  • rvores

    Exemplos:

  • rvores

    Exemplos:

  • rvores

    Exemplos:

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no, que so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no, que so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

    rvore Vazia!

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no, que so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

    r N raiz da rvore

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no. Esses so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

    r

    b conjuntos vazios!

    ...

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no. Esses so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

    r

    b conjuntos no vazios!

    ... s1 s2 sb

  • rvores

    Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados ns tais que:

    T = a rvore dita vazia. Ou

    Existe um n especial r, chamado raiz de T;

    os ns restantes constituem um nico conjunto, que pode ser vazio ou no. Esses so divididos em b (b 1) conjuntos distintos no vazios que so as subrvores de r, cada subrvore a qual , por sua vez, uma rvore.

    r

    b conjuntos no vazios! Que por sua vez, so rvores

    ... s1 s2 sb

  • rvores

    Motivao:

    Por que usar rvores?

  • rvores

    Motivao:

    Por que usar rvores?

    Custo

  • rvores

    Motivao:

    Por que usar rvores?

    Custo

    uma ED muito eficiente para armazenar informaes

  • rvores

    Motivao:

    Por que usar rvores?

    Custo

    uma ED muito eficiente para armazenar informaes

    particularmente adequada quando existe a necessidade de considerar todos ou alguma combinao de requisitos, tais como:

  • rvores

    Motivao:

    Por que usar rvores?

    Custo

    uma ED muito eficiente para armazenar informaes

    particularmente adequada quando existe a necessidade de considerar todos ou alguma combinao de requisitos, tais como:

    Acesso Direto e Seqencial eficientes

    Facilidade de Insero e retirada de itens

    Otimizao da utilizao da memria

  • rvores

    Motivao:

    Por que usar rvores?

    Custo

    Operao Listas rvores

    Insero O(n) O(logb n)

    Remoo O(n) O(logb n)

    Busca O(n) O(logb n)

  • rvores

    Exemplos de representaes:

    Parnteses Aninhados

    Diagrama de Incluso

    ( A (B) ( C (D (G) (H)) (E) (F (I)) ) )

  • rvores

    Exemplos de representaes:

    Hierrquica

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z

    ...

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z

    Filhos de v ...

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z

    Pai de w1, w2, ..., wj

    ...

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z

    Irmos entre si ...

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z w2 tio de z

    ...

  • rvores

    Definies

    Ns filhos, pais, tios, irmos e avs

    Seja v o n raiz da subrvore T.

    Os ns razes w1, w2, ... wj das subrvores de v so chamados filhos de v.

    v chamado pai de w1, w2, ... wj .

    Os ns w1, w2, ... wj so irmos.

    Se z filho de w1 ento w2 tio de z e v av de z.

    v

    w1 w2 wj

    z

    v av de z

    ...

  • rvores

    Definies

    Grau de sada, descendente e ancestral

    O nmero de filhos de um n chamado grau de sada desse n.

    Se x pertence subrvore de v, ento, x descendente de v e v ancestral de x.

    v

    w1 w2 wj

    z

    ...

  • rvores

    Definies

    Grau de sada, descendente e ancestral

    O nmero de filhos de um n chamado grau de sada desse n.

    Se x pertence subrvore de v, ento, x descendente de v e v ancestral de x.

    v

    w1 w2 wj

    z

    O n v tem grau de sada j

    ...

  • rvores

    Definies

    Grau de sada, descendente e ancestral

    O nmero de filhos de um n chamado grau de sada desse n.

    Se x pertence subrvore de v, ento, x descendente de v e v ancestral de x.

    v

    w1 w2 wj

    z z descendente de w1.

    ...

  • rvores

    Definies

    Grau de sada, descendente e ancestral

    O nmero de filhos de um n chamado grau de sada desse n.

    Se x pertence subrvore de v, ento, x descendente de v e v ancestral de x.

    v

    w1 w2 wj

    z z descendente de w1.

    ...

    w1 ancestral de z.

  • rvores

    Definies

    N folha e N interior

    Um n que no possui descendentes chamado de n folha, ou seja, um n folha aquele com grau de sada nulo.

    Um n que no folha (isto , possui grau de sada diferente de zero) chamado n interior ou n interno.

    v

    w1 w2 wj

    z

    ...

  • rvores

    Definies

    N folha e N interior

    Um n que no possui descendentes chamado de n folha, ou seja, um n folha aquele com grau de sada nulo.

    Um n que no folha (isto , possui grau de sada diferente de zero) chamado n interior ou n interno.

    v

    w1 w2 wj

    z

    ...

    w1 possui grau de sada igual a 1. Portanto, um n interior ou interno

  • rvores

    Definies

    N folha e N interior

    Um n que no possui descendentes chamado de n folha, ou seja, um n folha aquele com grau de sada nulo.

    Um n que no folha (isto , possui grau de sada diferente de zero) chamado n interior ou n interno.

    v

    w1 w2 wj

    z

    ...

    z possui grau de sada igual a 0. Portanto, um n folha.

  • rvores

    Definies

    Grau de uma rvore

    O grau de uma rvore o mximo entre os graus de seus ns.

    v

    w1 w2 wj

    z

    ...

  • rvores

    Definies

    Grau de uma rvore

    O grau de uma rvore o mximo entre os graus de seus ns.

    v

    w1 w2 wj

    z

    ...

    O n v de grau de sada j, j>2, o n de maior grau na rvore. Portanto, j o grau da rvore.

  • rvores

    Definies

    Nvel de um N e Altura de um N

    O nvel ou profundidade, de um n o nmero de ns do caminho da raiz at o n. O nvel da raiz, portanto, 0.

    A altura de um n v o nmero de ns no maior caminho de v at um de seus descendentes. As folhas tm altura 0.

    v

    w1 w2 wj

    z

    ...

    1

    2

    O nvel do n z 2.

  • rvores

    Definies

    Nvel de um N e Altura de um N

    O nvel ou profundidade, de um n o nmero de ns do caminho da raiz at o n. O nvel da raiz, portanto, 0.

    A altura de um n v o nmero de ns no maior caminho de v at um de seus descendentes. As folhas tm altura 0.

    v

    w1 w2 wj

    z

    ...

    2

    1

    A altura do n v 2.

  • rvores

    Definies

    Nvel da Raiz e Altura de uma rvore

    O nvel da raiz 0.

    A altura de uma rvore igual ao mximo nvel de seus ns. Representa-se a altura de rvore T por h(T).

    v

    w1 w2 wj

    z

    ... 2

    1 O maior nvel entres os ns da rvore 2, portanto a altura da rvore 2.

  • rvores

    Definies

    rvore Ordenada

    Uma rvore ordenada aquela na qual os filhos de cada n esto ordenados. Assume-se ordenao da esquerda para a direita

  • rvores

    Definies

    rvore Cheia

    Uma rvore de grau d uma rvore cheia se possui o nmero mximo de ns, isto , todos os ns tem nmero mximo de filhos exceto as folhas, e todas as folhas esto na mesma altura.

  • rvores

    Quanto a implementao, as rvores podem ser:

    Estticas: Os elementos so armazenados em um vetor.

    Dinmicas: Os elementos so alocados dinamicamente conforme necessidade. Cada elemento armazena os dados e um ponteiro para o filho da direita, esquerda e pai.

  • rvores

    Principais Estrutura de Dados do tipo rvore:

    rvore Binria

    rvore AVL

    rvore B

    rvore B+

    rvore Rubro-Negra

    Heaps *

  • rvores AVL

    Monael Pinheiro Ribeiro, M.Sc.

    Centro Universitrio da FEI Departamento de Cincia da Computao

  • rvore Binria de Busca

    A forma de uma rvore Binria de Busca depende da ordem em que seus elementos so inseridos.

    Elementos: B D K M P R

  • rvore Binria de Busca

    A forma de uma rvore Binria de Busca depende da ordem em que seus elementos so inseridos.

    Elementos: B D K M P R

  • rvore Binria de Busca

    A forma de uma rvore Binria de Busca depende da ordem em que seus elementos so inseridos.

    Elementos: B D K M P R

    Qual o custo para efetuar uma

    busca nesta rvore ?

  • rvores

    Definies

    rvore Zigue Zague

    Trata-se de uma rvore Binria de Busca com altura mxima. Onde todos os ns internos possuem exatamente um filho, com exceo da folha.

  • rvore AVL

    Como vimos em nas rvores binrias, a vantagem de usar uma ED de rvore justamente seu desempenho. Mas para garantir o bom desempenho dos algoritmos em rvores, deve-se garantir seu balanceamento

  • rvore AVL

    Como vimos em nas rvores binrias, a vantagem de usar uma ED de rvore justamente seu desempenho. Mas para garantir o bom desempenho dos algoritmos em rvores, deve-se garantir seu balanceamento

    As rvores AVL so um tipo de rvore

    balanceada que garantem que as operaes

    bsicas consumam no pior caso O(log2n).

  • rvore AVL

    rvore Binria de Busca:

  • rvore AVL

    rvore AVL:

  • rvore AVL

    So tambm conhecidas por rvores Balanceadas pela Altura

    O nome vem de seus criadores:

    Georgy Maximovixh Andelson-Velsky, e

    Evgenii Mikhailovich Landis

    As rvores AVL possuem a seguinte propriedade:

    Dado qualquer n da rvore, a diferena entre a altura do seu ramo esquerdo e a altura do seu ramo direito de no mximo de uma unidade.

    08/01/1922 06/10/1921 - 12/12/1997

  • rvore AVL

    As rvores AVL possuem a seguinte propriedade:

    Dado qualquer n da rvore, a diferena entre a altura do seu ramo esquerdo e a altura do seu ramo direito de no mximo de uma unidade.

  • rvore AVL

    As rvores AVL possuem a seguinte propriedade:

    Dado qualquer n da rvore, a diferena entre a altura do seu ramo esquerdo e a altura do seu ramo direito de no mximo de uma unidade.

    As Arvores AVL so rvores Binrias de Busca

  • rvore AVL

    Em Cincia da Computao uma rvore AVL uma estrutura de dados como a rvore binria de busca que:

    Consiste de uma seqencia de registros

    Cada registro tem quatro campos:

    uma campo para a chave.

    um ponteiro para o filho da esquerda (subrvore da esquerda)

    um ponteiro para o filho da direita (subrvore da direita)

    um ponteiro para o pai. (n pai)

    Ponteiro

    para raiz

    Quantidade

    N da rvore

    pai

    esquerda chave direita

  • rvore AVL

    Exemplo de representao de uma rvore AVL

  • rvore AVL

    Definio

    Uma rvore Binria de Busca uma rvore AVL se, e somente se, para cada n (incluindo a raiz) a altura do ramo esquerdo difere em no mximo uma unidade da altura do ramo direito.

    A diferena entre essas alturas chamada de fator de balanceamento do n.

    Este fator deve, ento, ser -1, 0 ou 1 em todos os ns para que a rvore esteja balanceada.

    Se um n uma folha, seu fator de balanceamento 0.

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Fator de Balanceamento

    uma rvore balanceada ?

  • Fator de Balanceamento

    uma rvore balanceada ?

  • Fator de Balanceamento

    uma rvore balanceada ?

    Por que?

  • Fator de Balanceamento

  • rvore AVL

    A altura h de uma rvore AVL de n chaves de no mximo 1.44 log

    2(n + 1)

    Esse resultado mostra a importncia e utilidade de uma rvore AVL, pois a busca, insero e remoo tem complexidade de tempo O(log

    2n) no pior caso.

    Inseres e remoes feitas numa rvore AVL podem modificar a sua estrutura. Deve-se garantir que o balanceamento seja mantido.

    Para isso, pode-se ter que mudar a estrutura da rvore em alguns de seus ns. A mudana da estrutura da rvore feita por dois tipos de rotaes em ramos da rvore: left-rotate e right-rotate.

  • Rotaes

    As rotaes so funes executadas quando se insere e remove ns de uma rvore balanceada, como a rvore AVL, com o objetivo de manter o balanceamento.

  • Rotaes

    As rotaes so funes executadas quando se insere e remove ns de uma rvore balanceada, como a rvore AVL, com o objetivo de manter o balanceamento.

    Rotao para Esquerda:

  • Rotaes

    As rotaes so funes executadas quando se insere e remove ns de uma rvore balanceada, como a rvore AVL, com o objetivo de manter o balanceamento.

    Rotao para Esquerda:

  • Rotaes

    Rotao para Esquerda

    Passos:

    Define-se x e y.

    Subrvore da esquerda de y passa a ser subrvore da direita de x.

    O pai de x passa a ser pai de y.

    Se x no possuir pai, ento y ser raiz da rvore.

    seno, se x for filho direito, y passa a ser filho direito do pai de x.

    seno, y passa a ser filho esquerdo do pai de x.

    x passa a ser filho da esquerda de y.

  • Rotaes

    As rotaes so funes executadas quando se insere e remove ns de uma rvore balanceada, como a rvore AVL, com o objetivo de manter o balanceamento.

    Rotao para Direita:

  • Rotaes

    As rotaes so funes executadas quando se insere e remove ns de uma rvore balanceada, como a rvore AVL, com o objetivo de manter o balanceamento.

    Rotao para Direita:

  • Rotaes

    Rotao para Direita

    Passos:

    Define-se x e y.

    Subrvore da direita de x passa a ser subrvore da direita de y.

    O pai de y passa a ser pai de x.

    Se y no possuir pai, ento x ser raiz da rvore.

    seno, se y for filho direito, x passa a ser filho direito do pai de y.

    seno, x passa a ser filho esquerdo do pai de y.

    y passa a ser filho da direita de x.

  • rvore AVL

    Insero

    A insero de um elemento em uma rvore AVL pode ser realizada em tempo O(log

    2n)

    Na realidade, usa-se uma verso modificada da insero em uma rvore binria de busca.

    A seguir, para garantir o balanceamento da rvore AVL, invoca-se um procedimento auxiliar que verifica os ns e promove rotaes.

  • Lembrando a insero em uma rvore Binria de Busca

    Inserir

    Caso particular (rvore vazia):

    Aloque espao para o item e atribua-lhe os dados;

    Faa com que o campo raiz da rvore aponte para o novo item.

    Caso geral (se houver itens na rvore):

    Percorrer a partir da raiz todos os itens, checando:

    Se o campo chave do item for maior que a chave do novo item:

    V para o filho esquerdo do item.

    Se o campo chave do item for menor que a chave do novo item:

    V para o filho direito do item.

    At encontrar um item nulo. Ao encontrar:

    Se o campo chave do pai for maior que a chave do novo item:

    Faa campo esquerda do pai apontar para o novo item.

    Se o campo chave do pai for menor que a chave do novo item:

    Faa campo direita do pai apontar para o novo item.

    Faa campo pai do novo item apontar para o pai.

    Incremente o campo quantidade da rvore em uma unidade.

  • rvore AVL

    Insero

    No caso da insero em uma rvore AVL, acrescentar ao final a seguinte instruo:

    Invocar o procedimento para correo do balanceamento eventualmente quebrado com a insero.

  • Insero em uma rvore AVL

    Inserir

    Caso particular (rvore vazia):

    Aloque espao para o item e atribua-lhe os dados;

    Faa com que o campo raiz da rvore aponte para o novo item.

    Caso geral (se houver itens na rvore):

    Percorrer a partir da raiz todos os itens, checando:

    Se o campo chave do item for maior que a chave do novo item:

    V para o filho esquerdo do item.

    Se o campo chave do item for menor que a chave do novo item:

    V para o filho direito do item.

    At encontrar um item nulo. Ao encontrar:

    Se o campo chave do pai for maior que a chave do novo item:

    Faa campo esquerda do pai apontar para o novo item.

    Se o campo chave do pai for menor que a chave do novo item:

    Faa campo direita do pai apontar para o novo item.

    Faa campo pai do novo item apontar para o pai.

    Incremente o campo quantidade da rvore em uma unidade.

    Invocar o procedimento de correo de balanceamento da rvore AVL.

  • rvore AVL

    Remoo

    A remoo de um elemento em uma rvore AVL pode ser realizada tambm em tempo O(log

    2n)

    Na realidade, usa-se uma verso modificada da remoo em uma rvore binria de busca.

    E, para garantir o balanceamento da rvore AVL, invoca-se um procedimento auxiliar que verifica os ns e promove rotaes.

  • Lembrando a remoo em uma rvore Binria de Busca

    Remover

    Caso 1: removendo um n folha:

    Localize o n a ser removido. Se for um n folha, ento:

    Se no for raiz:

    Faa o pai do n a ser removido apontar para NULL.

    Se for raiz:

    Faa o campo raiz da rvore apontar para NULL.

    Caso 2: removendo um n com 1 filho:

    Localize o n a ser removido. Se o n tiver apenas 1 filho:

    Se no for raiz:

    Faa o pai do n a ser removido apontar para o neto.

    Se for raiz:

    Faa o campo raiz da rvore apontar para o neto.

    Caso 3: removendo um n com 2 filhos:

    Localize o n a ser removido. Se o n tiver 2 filhos:

    Busque o antecessor ou sucessor;

    Se o sucessor/antecessor tiver filhos, aplique a remoo recursivamente sobre a subrvore do sucessor/antecessor;

    Substitua o n a ser removido pelo antecessor ou sucessor.

  • rvore AVL

    Remoo

    No caso da remoo em uma rvore AVL, acrescentar ao final a seguinte instruo:

    Invocar o procedimento para correo do balanceamento eventualmente quebrado com a remoo.

  • Remoo em uma rvore AVL

    Remover

    Caso 1: removendo um n folha:

    Localize o n a ser removido. Se for um n folha, ento:

    Se no for raiz:

    Faa o pai do n a ser removido apontar para NULL.

    Se for raiz:

    Faa o campo raiz da rvore apontar para NULL.

    Caso 2: removendo um n com 1 filho:

    Localize o n a ser removido. Se o n tiver apenas 1 filho:

    Se no for raiz:

    Faa o pai do n a ser removido apontar para o neto.

    Se for raiz:

    Faa o campo raiz da rvore apontar para o neto.

    Caso 3: removendo um n com 2 filhos:

    Localize o n a ser removido. Se o n tiver 2 filhos:

    Busque o antecessor ou sucessor;

    Se o sucessor/antecessor tiver filhos, aplique a remoo recursivamente sobre a subrvore do sucessor/antecessor;

    Substitua o n a ser removido pelo antecessor ou sucessor.

    Invocar o procedimento de correo de balanceamento da rvore AVL.

  • Correo de balanceamento em uma rvore AVL

    A insero e a remoo de ns em uma rvore AVL requerem que os ancestrais do n inserido/removido tenham seus fatores de balanceamento verificados.

    Para cada operao de insero ou remoo, verifica-se cada n ancestral, at a raiz.

    Caso o n verificado tenha fator de balanceamento < -1 ou > 1, quatro casos (que na verdade so dois casos com simetria) devem ser considerados para efetuar as rotaes e garantir o balanceamento.

  • Correo de balanceamento em uma rvore AVL

    Seja R o n desbalanceado, E seu filho esquerdo, D seu filho direito e P seu pai (que pode no existir se R for a raiz da rvore)

    Caso 1: Se o fator de R -2 e o fator de D 0 (right-right),

    Ento: Promover left-rotate em R.

    Caso 2: Se o fator de R -2 e o fator de D = 1 (right-left),

    Ento: Promover right-rotate em D e left-rotate em R.

    Caso 3: Se o fator de R 2 e o fator de E 0 (left-left),

    Ento: Promover right-rotate em R.

    Caso 4: Se o fator de R 2 e o fator de E = -1 (left-right):

    Ento: Promover left-rotate em E e right-rotate em R.

  • caso 1 caso 3

    Correo de balanceamento

  • caso 1 caso 3

    left-rotate em R right-rotate em R

    Correo de balanceamento

  • caso 1 caso 3

    Correo de balanceamento

  • caso 2 caso 4

    Correo de balanceamento

  • caso 2 caso 4

    right-rotate em D left-rotate em E

    Correo de balanceamento

  • caso 2 caso 4

    Correo de balanceamento

  • caso 2 caso 4

    left-rotate em R right-rotate em R

    Correo de balanceamento

  • caso 2 caso 4

    Correo de balanceamento