Exemplo tabela hash

596 palavras 3 páginas
#include
#include

#define TAM 10

//estrutura para listas duplamente encadeadas typedef struct cel { int conteudo; struct cel *ant, *prox;
} Celula;

/** Metodo que adiciona elementos na lista duplamente encadeada controlando a duplicidade e ordem */
Celula *inserir (int valor, Celula *lista){ Celula *nova; nova=(Celula*) malloc(sizeof(Celula)); nova->conteudo=valor; if (!lista){ //1ª VEZ lista=nova; nova->ant=NULL; //lista->ant=NULL; nova->prox=NULL; //lista->prox=NULL; } else { //GARANTIR QUE A LISTA ESTÁ NO INíCIO while (lista->ant) lista=lista->ant; if (valorconteudo){ //o valor sera o 1º da lista lista->ant=nova; nova->prox=lista; nova->ant=NULL; } else{ //--------------------------------------// while ((lista->prox)&&(valor>lista->conteudo)) //DEPOIS DO && PARA CONTROLAR ORDEM! [1,2,3,4...] lista=lista->prox; //VERIFICAR PQ SAIR DA REPETIÇÃO if (valor==lista->conteudo) printf ("Dado jah cadastrado!\n"); //CONTROLA DUPLICIDADE else if (valorconteudo){ lista->ant->prox=nova; nova->ant=lista->ant; nova->prox=lista; lista->ant=nova; } else { nova->prox=NULL; nova->ant=lista; lista->prox=nova; } } } return lista;
}

/* funcao que recebe um valor inteiro e uma lista duplamente encadeada * e remove da lista a primeira celula que contiver valor, * caso a celula existir. Ao final, a lista alterada eh retornada */
Celula *remover(int valor, Celula *lista) { Celula *pAux;

while (lista->ant) lista = lista->ant;

pAux = lista; while (pAux != NULL && pAux->conteudo != valor) pAux = pAux->prox;

if (pAux != NULL){ //unico elemento na lista if (pAux->ant == NULL && pAux->prox == NULL) lista = NULL; else if (pAux->prox != NULL && pAux->ant != NULL) {//elemento no

Relacionados

  • Tecnologia da informaçao
    4662 palavras | 19 páginas
  • Hashing
    1528 palavras | 7 páginas
  • Hash
    4846 palavras | 20 páginas
  • Hash
    2159 palavras | 9 páginas
  • Árvore Binária e Hash
    1228 palavras | 5 páginas
  • PESQUISA TABELA HASH
    1659 palavras | 7 páginas
  • hashing
    1560 palavras | 7 páginas
  • Tabela hash - Universidade Federal de Ouro Preto
    1936 palavras | 8 páginas
  • Tabelas Hash
    2134 palavras | 9 páginas
  • Tabela Hash
    2579 palavras | 11 páginas