Tabela hash - linguagem c

/*Em duplas Critérios de avaliação: - edentação - documentação - lógica e execução - otimização
- apresentação: domínio e capacidade de explicação (os códigos entregues deverão ser apresentados)Construir um programa em C que receba números inteiros entre 0 a 99 e os adicione em uma tabela hash (vetor de 10 posições).
Os processos de inserção, busca e remoção deverão ser baseados no cálculode endereçamento: função( h ) = chave % tamanhoVetor.
O tratamento de colisão deverá ser o ENCADEAMENTO SEPARADO (uso de listas encadeadas em vetores). Finalmente, o programa deverá
ter um MENUcom a seguinte estrutura: 1 - Inserir 2 - Pesquisar 3 - Remover 4 - Sair Opção: _ Sempre que um dado for inserido é
necessário: - mostrar o endereço calculado para o dado; - se houve ou não colisão;Sempre que um dado for pesquisado ou removido
é necessário: - mostrar o endereço calculado para o dado; - e se estava ou não em situação de colisão;*/

//Nomes: Rodrigo e Igor

#include#include
#include
#define TAM 10

typedef struct cel{
int chave; // valor a ser inserido
struct cel *prox; //ponteiro para celula proxima
}Celula;

/* Esta funcao insereuma nova celula já ordenado em uma lista encadeada.
* A nova celula eh inserida no final da lista.
* Ao final, a lista modificada eh retornada
*/
Celula *inserir(int valor, Celula *lista){
intaux;
Celula *nova,*p;
nova = (Celula *) malloc(sizeof(Celula));
nova->chave = valor;

if(!lista){
printf("o numero %d nao se encontra em colisao\n",valor);nova->prox=NULL;
lista=nova;
}
else{//quando entra nesse else, já está em colisão
printf("o numero %d se encontra em colisao\n",valor);
p=lista;while(p->prox!=NULL)
p=p->prox;
if(nova->chave < p->chave){//inserir ordenado
aux=nova->chave;
p->chave=nova->chave;...
tracking img