Cap 10 - Arvores de Busca-4spp

Cap 10 - Arvores de Busca-4spp - rvores de Busca 1...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: rvores de Busca 1 Estruturas de Dados rvores de Busca 6 9 2 4 1 8 < > = rvores de Busca 2 Estruturas de Dados rvores Binrias de Busca Uma rvore binria de busca uma rvore binria que armazena chaves (ou pares chave-valor) nos ns internos, satisfazendo as seguintes propriedades: ! Sejam u , v , e w trs ns tais que u esteja na sub-rvore esquerda de v e w esteja na sub-rvore direita de v . Ento, temos key ( u ) " key ( v ) " key ( w ) Ns externos no armazenam dados Uma visita em inordem a uma rvore binria de busca obtm valores de chave em ordem no-decrescente. 6 9 2 4 1 8 rvores de Busca 3 Estruturas de Dados Busca Para buscar uma chave k , percorremos um caminho partindo do n raiz v para as folhas. O prximo n a ser visitado depende do resultado da comparao com o valor contido no n corrente. Se alcanarmos um folha, isso significa que a chave no foi encontrada (o valor nulo ser ento retornado). Exemplo: k = 4: ! invocamos TreeSearch (4,root) Algorithm TreeSearch ( k , v ) if T.isExternal ( v ) return NULL if k < key ( v ) return TreeSearch ( k , T.left ( v )) else if k = key ( v ) return v else { k > key ( v ) } return TreeSearch ( k , T.right ( v )) 6 9 2 4 1 8 < > = rvores de Busca 4 Estruturas de Dados Insero Para executar a operao insert (k, o), o algoritmo faz busca pela chave k (usando TreeSearch) Considere que a chave k ainda no esteja na rvore, e que w seja o n folha encontrado pela busca O algoritmo insere k no n w e expande w, transformando-o em um n interno Exemplo: inserir 5 6 9 2 4 1 8 6 9 2 4 1 8 5 < > > w w rvores de Busca 5 Estruturas de Dados Remoo Para executar a operao remove ( k ), o algoritmo busca pela chave k Considere que a chave k esteja na rvore, e que v seja o n que armazena k Se o n v tiver um filho esquerdo w que folha, ento o algoritmo remove v e w da rvore com a operao removeExternal ( w ), que remove w e tambm seu pai Exemplo: remover k=4 6 9 2 4 1 8 5 v w 6 9 2 5 1 8 < > rvores de Busca 6 Estruturas de Dados Remoo (cont.) Considere que a chave k a ser removida esteja em um n v cujos filhos so ambos ns internos ! o algoritmo encontra w que vem logo depois de v em um percurso em inordem ! o algoritmo copia key ( w ) no n v ! o algoritmo remove o n w e seu filho esquerda z (que certamente um folha) utilizando a operao removeExternal ( z ) Exemplo: remover k=3 3 1 8 6 9 5 v w z 2 5 1 8 6 9 v 2 rvores de Busca 7 Estruturas de Dados Desempenho Considere um dicionrio com n itens implementado como uma rvore binria de busca de altura h ! o espao utilizado O ( n ) ! os mtodos find , insert e remove levam tempo O ( h ) A altura h O ( n ) no pior caso e O (log n ) no melhor caso dependendo de como os n itens foram inseridos rvores de Busca 8 Estruturas de Dados Representao (Simplificada) 17, Carlos 42, Ana # # # # # # Carlos Ana 17 # # # 42 rvores de Busca 9 Estruturas de Dados...
View Full Document

This note was uploaded on 04/02/2012 for the course DC 11 taught by Professor Milton during the Spring '12 term at Alaska Pacific University.

Page1 / 12

Cap 10 - Arvores de Busca-4spp - rvores de Busca 1...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online