Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define N 5
- typedef struct h{
- char cads[N][20];
- int elem;
- }THash;
- int sumaDeLetras(char cad[]);
- void crearTabla(THash *hash);
- void insertar(THash *hash, char cad[]);
- void imprimirHash(THash *hash);
- int main(){
- THash hash;
- crearTabla(&hash);
- //imprimirHash(&hash);
- /*
- int i,j;
- for(i=0; i<N; i++){
- strcpy(hash.cads[i],"0");
- printf("%s\n",hash.cads[i]);
- }
- for(i=0; i<N; i++){
- printf("%d: ",i);
- //for(j=0; j<strlen(hash.cads[i]); j++)
- // printf("%c",hash.cads[i][j]);
- printf("%s\n",hash.cads[i]);
- }
- */
- insertar(&hash,"PERU");
- insertar(&hash,"CHILE");
- insertar(&hash,"BRASIL");
- insertar(&hash,"ARGENTINA");
- insertar(&hash,"BOLIVIA");
- insertar(&hash,"COLOMBIA");
- //printf("%d\n",hash.elem);
- imprimirHash(&hash);
- return 0;
- }
- void crearTabla(THash *hash){
- int i,j;
- for(i=0; i<N; i++){
- strcpy(hash->cads[i],"0");
- printf("%s\n",hash->cads[i]);
- }
- hash->elem = 0;
- //for(i=0; i<N; i++)
- // hash.cads[i][0] = '\0';
- }
- int sumaDeLetras(char cad[]){
- int i,suma = 0;
- char letra;
- for(i=0; i<strlen(cad); i++)
- suma += cad[i] - 'A' + 1;
- return suma;
- }
- void insertar(THash *hash, char cad[]){
- if(hash->elem == N){
- printf("Tabla de hash llena\n");
- return;
- }
- int h = sumaDeLetras(cad) % N;
- while(strcmp(hash->cads[h],"0") != 0 )
- h = (h+1)%N;
- strcpy(hash->cads[h],cad);
- hash->elem++;
- }
- void imprimirHash(THash *hash){
- int i,j;
- for(i=0; i<N; i++){
- printf("%d: ",i);
- //for(j=0; j<strlen(hash.cads[i]); j++)
- // printf("%c",hash.cads[i][j]);
- printf("%s\n",hash->cads[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement