Wednesday, 29 October 2014

HASHING

#include<stdio.h>
 #include<stdbool.h>
 int pos;
 int array[50];
 void insert();
 void search();
 int Hash(int );
 int reHash(int );
 void Delete();
 int main()
   {
     int choice;
     int i;
     for(i = 0; i < 40; i++){
         array[i] = '*';
     while(1)
     {
         printf("\n1. Insert\n2. Search\n3. Delete\n4. Exit\n");
         printf("Enter your choice: ");
         scanf("%d", &choice);
         switch(choice){
             case 1:
                 insert();
                 break;
             case 2:
                 search();
                 break;
             case 3:
                 Delete();
                 break;
             case 4:
                 exit(0);
             default:
                 printf("\nEnter correct option\n");
                 break;
         }
     }
     return 0;
 }

void insert(){
     int data;
     int count = 0;
     printf("Enter the item to insert: ");
     scanf("%d", &data);
     pos = Hash(data);
     if(pos >= 50)
     {
         pos = 0;
     }
     while(array[pos] != '*'){
         pos = reHash(pos);
         count++;
         if(count>=50){
             printf("Memory Full!!No space is avaible for storage");
             break;
         }
     }
     if(array[pos] == '*'){
         array[pos] = data;
     }
     printf("Data is stored at index %d\n", pos);
 }
 int Hash(int k){
     return k%100;
 }
 int reHash(int k){
     return (k+1)%100;
 }
 void search(){
     int k,i;
     bool isFound = false;
     printf("Enter the item to search: ");
     scanf("%d", &k);
     for(i = 0; i < 50; i++){
         if(array[i] == k)
         {
             isFound = true;
             break;
         }
     }
     if(isFound)
     {
         printf("The item is found at index %d\n", i);
     }
     else
     {
         printf("No record available!!");
     }
 }
 void Delete(){
     int k,i;
     bool isFound = false;
     printf("Enter the item to delete: ");
     scanf("%d", &k);
     for(i = 0; i < 50; i++){
         if(array[i] == k){
             isFound = true;
             break;
         }
     }
     if(isFound)
     {
         array[i] = '*';
         printf("The item is deleted\n");
     }
     else
     {
         printf("No item is Found!!");
     }
 }

 

No comments:

Post a Comment

Note: only a member of this blog may post a comment.