arvores m-vias

Click here to load reader

Post on 06-Nov-2015

29 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Arvores M-Vias

TRANSCRIPT

  • AlgAlg. e . e EstruturaEstrutura de Dados IIde Dados IIProf. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    ZZrvores rvores MM--viasvias e Be B

    FaculdadeFaculdade SEAMASEAMACurso de Sistemas de InformaCurso de Sistemas de Informaoo

  • rvores Multivias (Multiway tree)

  • rvores Multivias

    { Em uma rvore binria, cada n possui umitem de dado e pode ter at dois filhos.

    { Se permitirmos o uso de mais itens de dadose filhos por n, o resultado uma rvoreMultivias ou M-vias (multiway tree).

    { Uma Estrutura Multivia com algoritmoeficiente deve considerar:z Tempo de acesso a cada nz Balanceamento da rvore.

    { As rvores 2-3-4, so rvores multivias quepodem ter at quatro filhos e trs itens dedados por n.

  • rvores 2-3-4

    { rvores 2-3-4 so interessantes porvrias razes:z So rvores balanceadas.z Fceis de programar.z Servem como uma introduo para

    rvores B.

  • rvores 2-3-4

    { A figura mostra uma pequena rvore 2-3-4.{ Cada n pode conter um, dois ou trs itens

    de dados.

    50

    30 60 70 80

    10 20 5540 62 64 66 75 83 86

  • rvores 2-3-4{ Um n interno deve sempre ter um filho a

    mais que seus itens de dados.{ Um n folha, ao contrrio, no possui filhos,

    mas ele pode conter um, dois ou trs itensde dados. Ns vazios no so permitidos.

    { Devido a uma rvore 2-3-4 possuir nscom at quatro filhos, ela chamada dervore multivias de ordem 4 (multiwaytree of order 4).

  • rvores 2-3-4{ O 2, 3 e 4 no nome rvore 2-3-4 referem-se a quantos

    links para filhos podem potencialmente estar contidos emum dado n.

    { Para ns internos (no folhas), trs combinaes sopossveis:z um n com um item de dado sempre possuir dois

    filhos;z um n com dois itens de dados sempre possuir trs

    filhos;z um n com trs itens de dados sempre possuir quatro

    filhos.50

    30 60 70 80

    10 20 5540 62 64 66 75 83 86

  • rvores 2-3-4

    Por que uma rvore 2-3-4no chamada de rvore1-2-3-4?

    { Um n no pode ter somente um filho, comoos ns na rvore binria

    { Um n com um item de dado precisa sempreter dois links, a menos que seja uma folha,neste caso, ele no possui links.

  • rvores 2-3-4{ Um n com dois links chamado 2-ns,{ Um n com trs links chamado 3-ns{ Um n com quatro links chamado 4-ns

    25

    12 33 37

    0 1 2-ns83

    40 62

    27 33 51 55 59

    0 1

    3-ns2

    100 10578

    50 75 95

    30 35 55

    0 1 4-ns

    2 3

  • rvores 2-3-4 X rvore Binria

    { Em uma rvore binria, todos os filhoscom chaves menores que a chave don esto enraizados no n filho esquerda, e todos os filhos comchaves maiores ou iguais a chave don esto enraizados no n filho direita.

    { Na rvore 2-3-4 o princpio o mesmo,mas existe algo mais:

  • rvores 2-3-4

    { todos os itens de dados na sub-rvore enraizada nofilho 0, possuem valores menores do que a chave 0;

    { todos os itens de dados na sub-rvore enraizada nofilho 1, possuem valores maiores do que a chave 0, masmenores do que a chave1;

    { todos os itens de dados na sub-rvore enraizada nofilho 2, possuem valores maiores do que a chave 1, masmenores do que a chave2;

    { todos os itens de dados na sub-rvore enraizada nofilho 3, possuem valores maiores do que a chave 2.

    { Valores duplicados geralmente no so permitidos.Deste modo ns no necessitamos nos preocupar com acomparao de chaves iguais.

    A B C

    N com chavesmenores do que

    A

    N com chavesentre A e B

    N com chavesentre B e C

    N com chavesmaiores do que

    C

    0 1 2 3

  • Pesquisa em rvores 2-3-4

    Exemplo:{ Para pesquisar por um item de dado com a chave 64 na

    rvore da figura, voc inicia na raiz, porm noencontra o item.

    { Por que 64 maior do que 50, voc vai para o filho 1, oqual ns representamos com 60,70 e 80.

    { Voc no encontra o item de dado, assim voc precisapassar para o prximo filho.

    { Aqui, devido a 64 ser maior do que 60, mas menor doque 70, voc vai novamente para o filho 1. Desta vezvoc encontra o item especfico no link 62, 64 e 66.

    50

    30 60 70 80

    10 20 5540 62 64 66 75 83 86

  • Insero em rvore 2-3-4{ Novos itens de dados so sempre inseridos nas

    folhas.{ Se os itens foram inseridos em um n com

    filhos, ento o nmero de filhos necessitar sermudado para manter a estrutura da rvore, oque estipula que esta rvore deve ter um filho amais do que os itens de dados em um n.

    { O processo de insero inicia pela pesquisa don folha apropriado.

    { Se ns que no esto cheios so encontradosdurante a pesquisa, a insero fcil.

    { A insero pode envolver a movimentao deum ou dois itens em um n.

    { As chaves devero estar na ordem correta apso novo item ser inserido.

  • Exemplo 1: Insero em rvore 2-3-4

    - O item 23 vai ser deslocado para direitapara abrir espao para inserir o item 18.

    28 55

    11 74

    5 9 3013 23 44 47 63 67 72 97

    42

    a) Antes da insero

    18 inserido 23 deslocado para direita

    28 55

    11 74

    5 9 3013 18 23 44 47 63 67 72 97

    42

    b) Depois da insero

    - Insero de um item (18) sem divisodo n

  • Exemplo 2 - Insero em rvore 2-3-4

    { Com Diviso de nsz As inseres tornam-se mais complicadas se um

    n cheio encontrado no caminho abaixo doponto de insero.

    z Quando isto acontece, o n precisa ser dividido(split).

    z este processo de diviso que mantm a rvorebalanceada.

    z O tipo de rvore 2-3-4 que estamos vendo freqentemente chamada de rvore 2-3-4 top-down, por que os ns so divididos de maneirapara baixo do ponto de insero.

    Alcides BenicasaCross-Out

  • Insero em rvore 2-3-4

    { Chamaremos os itens de dados a seremdivididos por A, B e C.z assumimos que o n a ser dividido no o

    raiz, ns examinaremos a diviso da raizdepois

    62

    29 83 92 104

    15 21 7447 87 89 97 112

    a) Antes da insero

    n a ser dividido

    insero do 99

    A B C

  • Insero em rvore 2-3-4

    { Um novo n vazio criado. Ele parente (sibling) do n que estsendo dividido, e colocado a sua direita;

    { O item de dado C movido para o novo n;{ O item de dado B movido para o pai do n que est sendo dividido;{ O item de dado A fica aonde ele est;{ Os dois filhos mais direita so desconectados do n que est sendo

    dividido e so conectados no novo n.

    62

    29 83 92 104

    15 21 7447 87 89 97 112

    a) Antes dainsero

    n a ser dividido

    insero do 99

    A B C

    62 92

    29 104

    15 21 7447 87 89 97 99 112

    b) Aps a insero

    novo n

    92 movido para cima

    A

    B

    C

    83

    99 inserido

    83 fica no lugar 104 foi p/ direita

  • Exemplo 3 - Insero em rvore 2-3-4{ Dividindo a raizz Quando uma raiz cheia encontrada no

    inicio da pesquisa para encontrar oponto de insero, o resultado dadiviso ligeiramente maiscomplicado:

    26 49 72

    9 13 31 35 52 61 82

    a) Antes da insero raiz a ser dividido

    insero do 41

    A B C

  • Insero em rvore 2-3-4

    z o item de dado C movido para o novo n parente;z o item de dado B movido para a nova raiz;z o item de dado A deixado aonde est;z os dois filhos mais a direita do n que est sendo dividido so

    desconectados dele e conectados no novo n do lado direito.

    26 49 72

    9 13 31 35 52 61 82

    a) Antes da insero

    raiz a ser dividido

    insero do 41

    A B C

    49

    9 13 31 35 41 52 61 82

    b) Aps a insero

    novo n raiz

    49 movido p/cima

    A

    B

    C

    26 72 novo n direita72 movidop/ direita

    26 fica nolugar

    41 inserido

    um novo n criado, tornando-se a nova raiz, e os pais do novon so divididos;um segundo novo n criado,tornando-se parente (sibling) don que est sendo dividido;

  • rvores 2-3

  • rvores 2-3

    { Primeira rvore multivias, inventada por J.E. Hopcroftem 1970.

    { Iremos analisar rvores 2-3 rapidamente aqui por que elas so importantes historicamente e porque ainda so usadas em muitas aplicaes.

    { Alm disso, algumas tcnicas usadas com rvores 2-3 so aplicveis s rvores B.

    { rvores 2-3 so similares s rvores 2-3-4 exceto que, como voc pode ter adivinhado pelo nome, mantm um item de dados a menos e tem menos um filho.

  • Divises de n

    { Como em rvores 2-3-4, toda insero feita em ns folhas e todo n folha est no nvel inferior.

    { A busca de um item de dados existente lidada exatamente como em uma rvore 2-3-4, exceto pelo nmero de itens de dados e filhos.

    { Mas h uma diferena surpreendente no modo como divises so lidadas.

  • Eis por que as divises so to diferentes

    { Em um ou outro tipo de rvore, uma diviso de nrequer trs itens de dados: um a ser mantido no nsendo dividido, um para mover para a direita para o novo n e um para mover para cima para o n pai.

    { Um n completo em uma rvore 2-3-4 tem trs itens de dados, que so movidos para esses trs destinos.

    { Porm, um n completo em uma rvore 2-3 tem apenas dois itens de dados.

    { Onde podemos obter um terceiro item?

  • Eis por que as divises so to diferentes

    { Teremos que usar o novo item: aquele sendo inserido na rvore.

    { Em uma rvore 2-3-4, o novo item inserido depois de todas as divises terem ocorrido.

    { Na rvore 2-3, ele tem que participar na diviso.

  • Primeiro Caso

    { Se o n folha onde o novo item dever ser inserido no estiver completo, o novo item poder ser inserido imediatamente.

    { Inserindo o item 90.

    75

    70 80

    9090

    75

    70 80 90

  • Segundo Caso

    { Se o n folha estiver completo, ele terque ser dividido.

    { Seus dois itens e o novo