Hash

285 palavras 2 páginas
#define TAM 11

typedef struct hash{ int numero; struct hash *prox;
}Hash;

int i;

void init(Hash *tabela[], int tam){ for (i=0; inumero); aux = aux->prox; } } system("PAUSE");
}

void inserir(Hash *tabela[], float num){ Hash *novo = (Hash*)malloc(sizeof(Hash)); novo->numero = num; int pos = f_hash(num, TAM); novo->prox = tabela[pos]; tabela[pos] = novo;
}

void excluir(Hash *tabela[], float x){ int pos = f_hash(x, TAM); Hash *aux; if(tabela[pos] != NULL){ if(tabela[pos]->numero == x){ aux = tabela[pos]; tabela[pos] = tabela[pos]->prox; free(aux); printf("\nNumero excluido!"); }else{ aux = tabela[pos]->prox; Hash *ant = tabela[pos]; while(aux != NULL && aux->prox != NULL && aux->numero != x){ ant = aux; aux = aux->prox; } if(aux != NULL){ ant->prox = aux->prox; free(aux); } else{ printf("\nNumero nao encontrado"); } } }else{ printf("\nNumero nao encontrado"); }
}

void busca(Hash *tabela[], float num){ int pos = f_hash(num, TAM); Hash *aux = tabela[pos]; while(aux != NULL){ if(aux->numero == num){ printf("\nIndice: %d ->", pos); printf("\n%d", aux->numero); } aux = aux->prox; }
}

int main( ){ float num; char op; Hash *tabela[TAM]; init(tabela, TAM); //inicia tabela com NULL

while(op != '5'){ system("cls"); printf("\n"); printf(" Para inserir digite 1\n"); printf(" Para remover digite 2\n"); printf(" Para pesquisar digite 3\n"); printf(" Para imprimir digite 4\n\n"); printf(" Para sair 5\n"); scanf("%c", &op); printf("\n");

Relacionados

  • Hash
    4846 palavras | 20 páginas
  • Hash
    2159 palavras | 9 páginas
  • Hash
    387 palavras | 2 páginas
  • Hash
    389 palavras | 2 páginas
  • Hash
    4057 palavras | 17 páginas
  • Hash
    1179 palavras | 5 páginas
  • Tabelas HASH
    1019 palavras | 5 páginas
  • Hash
    485 palavras | 2 páginas
  • Hash
    936 palavras | 4 páginas
  • Hash
    266 palavras | 2 páginas