1 / 4

ORI – Árvore B

ORI – Árvore B. Algoritmos BUSCA E INSERÇÃO. Algoritmo BuscaB (x) Parâmetros: x: chave procurada p_chave: aponta para a página onde a chave foi encontrada, ou deve ser inserida achou: indica se a chave foi encontrada ou não

Download Presentation

ORI – Árvore B

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ORI – Árvore B Algoritmos BUSCA E INSERÇÃO

  2. Algoritmo BuscaB (x) Parâmetros: x: chave procurada p_chave: aponta para a página onde a chave foi encontrada, ou deve ser inserida achou: indica se a chave foi encontrada ou não g: g-ésima posição da página apontada por p_chave, onde a chave foi encontrada; se a chave não foi encontrada, p_chave aponta p/ a última página examinada (uma folha) e g informa a posição, nesta página, onde a chave x poderia ser incluída. pilha: armazena o caminho percorrido até chegar ao nó folha filho[ ] : vetor de ponteiros para os filhos de um nó m : número de filhos de um nó

  3. p: ponteiro local p = ptraiz p_chave = NULL achou = falso enquanto p NULL faça i = g = 1 pilha.insere(p) p_chave = p enquanto i m faça se x > pchave[i] então i = g = i + 1 {vai para o próximo elemento} senãose x = pchave[i] então p = NULL {chave encontrada} achou = verdadeiro senão p = pfilho[i] {desce um nível } fim_se i = m + 2 fim_se fim enquanto se i = m + 1 então p = p→filho[m] fim se fim enquanto

  4. InsereB (x) se raiz  NULL então Busca_B(x) se achou então //chave existe retorna falso senão //deve-se inserir a chave p = pilha.retira_no( ) esq = dir = NULL inseriu = falso enquanto p  NULL E não inseriu faça se pm = max_elementos então // nó está cheio // fazer o split senão // inserir no nó inseriu = verdadeiro fim_se fim_enquanto // o que fazer aqui ? fim_se senão esq = dir = NULL raiz = cria_raiz(esq,dir) // cria raiz raiz.chave[0] = x // insere elemento x na raiz retorna verdadeiro fim_se

More Related