Advertisement
bkit4s0

[Hash table] simple

Dec 31st, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.84 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 1000
  4. #define in "in.txt"
  5. #define out "out.txt"
  6. void insert(unsigned long H[], unsigned long x)
  7. {
  8.     int k;
  9.     k = x % 1000;
  10.     H[k] = x;
  11. }
  12. int search(unsigned long H[], unsigned long x)
  13. {
  14.     return x%1000;
  15. }
  16. void hdelete(unsigned long H[], unsigned long x)
  17. {
  18.     H[x%1000] = NULL;
  19. }
  20. void hwritefile(unsigned long a[MAX], int n)
  21. {
  22.         FILE *f;
  23.         f = fopen(out,"wt");
  24.         if(f==NULL)
  25.         {
  26.                 printf("Khong tao duoc file\n");
  27.                 exit(0);
  28.         }
  29.         for (int i = 0; i < n; ++i)
  30.         {
  31.                 fprintf(f, "%lu\n", a[i]);      
  32.         }
  33.         fprintf(f, "\n" );
  34.         fclose(f);
  35. }
  36. void hreadfile(unsigned long H[], int n)
  37. {
  38.         FILE *f;
  39.         unsigned long x;
  40.         int k;
  41.         f = fopen(in,"rt");
  42.         if(f==NULL)
  43.         {
  44.                 printf("Khong doc duoc file\n");
  45.                 exit(0);
  46.         }
  47.         for (int i = 0; i < n; ++i)
  48.         {
  49.             fscanf(f, "%lu", &x);
  50.             if (x == NULL)
  51.                 x = 0;
  52.             insert(H,x);
  53.         }
  54.         fclose(f);
  55. }
  56. void writenumof10digit(int n)
  57. {
  58.         FILE *f;
  59.         f = fopen(in,"wt");
  60.         if(f==NULL)
  61.         {
  62.                 printf("Khong tao duoc file\n");
  63.                 //getch();
  64.                 exit(0);
  65.         }
  66.         for (int i = 0; i < n; ++i)
  67.         {
  68.                 fprintf(f, "%lu\n", rand()%1000000000);
  69.         }
  70.         fprintf(f, "\n" );
  71.         fclose(f);
  72. }
  73. int main(int argc, char const *argv[])
  74. {
  75.         unsigned long a[MAX];
  76.         writenumof10digit(1000);
  77.         hreadfile(a,1000);
  78.         hwritefile(a,1000);
  79.         //for(int i=0; i<1000; i++)
  80.         //    printf("%lu\n",a[i]);
  81.         printf("%d\n",search(a,30212));
  82.         hdelete(a,30212);
  83.         printf("%d\n",a[search(a,30212)]);
  84.         system("pause");
  85.         return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement