Tabela hashing

3 respostas
programação
N

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.

3 Respostas

Felipe_Miranda

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?

N

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

N

*/
#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]={{“[CPF removido]”,“MARIA DA COSTA SOUZA”},
{“[CPF removido]”,“NORA DA COSTA LIMA”},
{“[CPF removido]”,“SAMMY DA FERNANDA COSTA”},
{“[CPF removido]”,“CARLA DA COSTA SOUZA”},
{“[CPF removido]”,“MORENA DA MEIRELES LICA”},
{“[CPF removido]”,“ROSARIO DA SOUTO RADOM”},
{“[CPF removido]”,“JANAINA DA LIMA SEICA”},
{“[CPF removido]”,“TAINA DA SILVA TERA”},
{“[CPF removido]”,“SELHA DA KEICY MONA”},
{“[CPF removido]”,“LINDA DA LORENA SOUZA”},
{“[CPF removido]”,“KEILA DA COSTA LOJA”},
{“[CPF removido]”,“FABRICIA DA COSTA TIPO”},
{“[CPF removido]”,“LORENA DA COSTA YUTAA”},
{“[CPF removido]”,“SAU DA COSTA SOUZA”},
{“[CPF removido]”,“MATHEYS DA COSTA TELHA”},
{“[CPF removido]”,“JAAO DA COSTA SOUZA”},
{“[CPF removido]”,“KEVIN DA COSTA SOUZA”},
{“[CPF removido]”,“SHEILA DA COSTA CARMI”},
{“[CPF removido]”,“ROBERT DA COSTA LILA”},
{“[CPF removido]”,“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;

}

Criado 19 de agosto de 2016
Ultima resposta 22 de ago. de 2016
Respostas 3
Participantes 2