Tabela hashing

Crie um programa empregando hashing de endereçamento aberto e com sondagem linear. Estima-se ter apenas 20 prestadores de serviço.

A chave de acesso as informações é o numero do CPF do prestador de serviço. O programa deve suportar as operações abaixo de forma modular: “o programa deve ser em C”.

1. Criar a tabela hash
2. Remover/eliminar um prestador de serviço
3. Recuperar os dados de um prestador de serviço
4. Atualizar os dados de um prestadorde serviço
5. Imprimir/listar os dados de todos os prestadores de serviço

Crie um menu que permita o usuário escolher as opções de 2…5 acima.

Basicamente acredito que seja simples a aplicação, você irá trabalhar basicamente com arrays, pesquise sobre Hash em C, bem como tratar colisões, me parece um daqueles típicos exercicios.

*você já começou alguma coisa?
*já sabe trabalhar com listas em C?
*já sabe o conceito de endereçamento aberto e sondagem linear?

ola @Felipe_Miranda tenho que fazer esse programa em C.

eu so iniciei os dados que sao necessarios, se voce poder ajudar agradeço, esses assuntos que voce citou na pergunta, eu o conheço.

estudo Algoritmo e Estrutura de Dados I

*/
#include<stdio.h>
#define tam 20

#include <stdlib.h>
#include <stdio.h>

typedef struct
{ char rua[50];
int numero;
char bairro[20];
char cidade[30];
char estado[3];
char nac[4];
char CEP[10];
} ender;

typedef struct
{ char cnpj[15];
char nome[20];
char funcao[20];
} empre;

typedef struct
{ char cpf[20];
char nome[30];
ender endereco;
empre empresa;
} ficha;

ender endereco[tam]={{“25”,01,“sao jorge”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“24”,02,“sao matheus”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“28”,03,“sao lima”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“23”,04,“sao maria”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“20”,05,“sao fazde”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“21”,06,“sao rogerio”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“15”,07,“sao suma”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“12”,22,“sao frias”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“15”,20,“sao souza”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“50”,10,“sao loco”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“51”,02,“sao loira”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“52”,03,“sao senha”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“53”,04,“sao rosa”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“54”,05,“sao limaty”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“55”,06,“sao roo”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“56”,07,“sao caixa”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“57”,22,“sao souzu”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“69”,20,“sao luzia”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“70”,10,“sao zona”,“itacoatiara”,“AM”,“BR”,“69101-000”},
{“71”,18,“sao deras”,“itacoatiara”,“AM”,“BR”,“69101-000”},
};

empre empresa[tam]={ {“1234”,“fashion”,“administrador”},
{“1235”,“loja”,“quimico”},
{“1236”,“casas”,“engenheiro”},
{“1237”,“americanas”,“seguranca”},
{“1238”,“bahia”,“garcon”},
{“1239”,“bemol”,“guarda”},
{“1214”,“novo mundo”,“terminal”},
{“1224”,“novo tempo”,“diretor”},
{“1244”,“globo”,“medico”},
{“1254”,“sbt”,“farmaceutico”},
{“1264”,“ufam”,“assistente”},
{“1274”,“uea”,“fachineiro”},
{“1284”,“cetam”,“servidor”},
{“1294”,“senac”,“analista”},
{“1104”,“sesi”,“programador”},
{“1334”,“fucapi”,“RG”},
{“1434”,“microsoft”,“logista”},
{“1534”,“apple”,“carpinteiro”},
{“1634”,“sansung”,“entrevistador”},
{“1734”,“sony”,“funcionario”},
};

ficha dados[tam]={{“026.098.986-91”,“MARIA DA COSTA SOUZA”},
{“025.098.986-92”,“NORA DA COSTA LIMA”},
{“027.098.986-93”,“SAMMY DA FERNANDA COSTA”},
{“028.098.986-94”,“CARLA DA COSTA SOUZA”},
{“029.098.986-95”,“MORENA DA MEIRELES LICA”},
{“010.098.986-96”,“ROSARIO DA SOUTO RADOM”},
{“011.098.986-97”,“JANAINA DA LIMA SEICA”},
{“012.098.986-98”,“TAINA DA SILVA TERA”},
{“012.100.986-99”,“SELHA DA KEICY MONA”},
{“026.091.986-90”,“LINDA DA LORENA SOUZA”},
{“026.092.986-88”,“KEILA DA COSTA LOJA”},
{“026.093.986-78”,“FABRICIA DA COSTA TIPO”},
{“026.094.986-68”,“LORENA DA COSTA YUTAA”},
{“026.095.986-58”,“SAU DA COSTA SOUZA”},
{“026.096.986-48”,“MATHEYS DA COSTA TELHA”},
{“026.097.986-38”,“JAAO DA COSTA SOUZA”},
{“026.099.900-28”,“KEVIN DA COSTA SOUZA”},
{“026.099.910-18”,“SHEILA DA COSTA CARMI”},
{“026.090.911-08”,“ROBERT DA COSTA LILA”},
{“026.098.912-98”,“CARLA DA COSTA SEIKA”},};

main (){
int i,opc;

printf ("\t#### ESCOLHA A OPCAO ####\n\n\n");
printf ("\n1.Remover/eliminar um prestador de servico");
printf ("\n2.Recuperar os dados de um prestador de servico");
   printf ("\n3.Atualizar os dados de um prestadorde servico");
printf ("\n4.Imprimir/listar os dados de todos os prestadores de servico\n\n\n");
scanf ("%i",&opc);

switch (opc){
    case 1:
        printf ("\n1.Remover/eliminar um prestador de servico\n");
        break;
    case 2:
        printf ("\n2.Recuperar os dados de um prestador de servico\n");
        break;
    case 3:
        printf ("\n3.Atualizar os dados de um prestadorde servico\n");
        break;
    case 4:
        printf ("\n4.Imprimir/listar os dados de todos os prestadores de servico\n");

//,endereco[i].bairro,endereco[i].cidade,endereco[i].estado,endereco[i].nac,endereco[i].CEP

        for (i=0;i<tam;i++){
              printf ("%i.  %s \nrua: %s  %s \n\n",i,dados[i].nome,endereco[i].rua,endereco[i].cidade);
        }
        printf ("\n\n ");
        break;
}


return 0;

}