REFERRED FROM : GURUPRASAD M S

#include<stdio.h>
#include<stdlib.h>
#define MAX 100
void insert();
void display();
int a[MAX];

void display()
{
            int i;
            printf("\n HASH TABLE CONTENTS ARE \n");
           for(i=0;i<MAX;i++)
          {
                   if(a[i]!=-1)
                            printf("%d %d \n",i,a[i]);
          }      
}


void insert()
{
              int num,key,i,count=0;
              printf("\n Enter the DATA \n");
              scanf("%d",&num);
              key=num%MAX;
              if(a[key]==-1) 
                              a[key]=num;
              else
             {
                          printf("Collision is Detected\n");
                         for(i=0;i<MAX;i++)
                         {
                                    if(a[i]!=-1)
                                  {
                                             count++;
                                  }
                         }
                         if(count==MAX)
                        {
                                  printf("\n HASH TABLE IS FULL \n");
                                  return;
                       }
                        printf("\nCollision avoided succesfully using Linear Probing \n");
                       for(i=key+1;i<MAX;i++)
                      { 
                                     if(a[i]==-1)
                                    {
                                                      a[i]=num;
                                                      return;
                                    }
                       }

                      for(i=0;i<key;i++) 
                     { 
                                    if(a[i]==-1)
                                   {
                                                a[i]=num;
                                                return;
                                  } 
                    } 
         }
}


void main()
{
           int i,ch;
           printf("Collision handling by linear probing :\n");
          for(i=0;i<MAX;i++)
          {
                  a[i]=-1;
          }
          while(1)
         {
              printf("\n PRESS 1.Insert \t 2.Display \t 4.Exit \nENTER YOUR CHOICE \n");
             scanf("%d",&ch);
             switch(ch)
             {
                     case 1:insert(); break;
                     case 2:display(); break;
                     case 4:exit(0); 
                     default: printf("Invalid Choice \n"); 
             }
      }
}




OUTPUT AT THE END







REFERRED FROM :  PRITHVIRAJ JAIN






#include<stdio.h>
#include<stdlib.h>
#define max 10
int a[max],i,choice,key,num;
void insert()
{
    int count=0;
    printf("ENTER THE DATA\n");
    scanf("%d",&num);
    key=num%max;
    if(a[key]==-1)
    a[key]=num;
    else
    {
        printf("COLLISION DETECTED \n");
        for(i=0;i<max;i++)
        if(a[i]!=-1)
        count++;
        if(count==max)
        {
            printf("HASH TABLE IS FULL\n");
            return;
        }
        printf("COLLISION AVOIDED BY LINEAR PROBING METHOD\n");
        for(i=key+1;i<max;i++)
        {
            if(a[i]==-1)
            {
                a[i]=num;
                return;
            }
        }
        for(i=0;i<key;i++)
        {
            if(a[i]==-1)
            {
                a[i]=num;
                return;
            }
        }   
    }
}       
void display()
{
    int ch;
    printf("1. NORMAL DISPLAY\n2. FILTERED DISPLAY\n");
    scanf("%d",&ch);
    switch(ch)
    {
        case 1:printf("THE HASH TABLE CONTAINS :\n");
            for(i=0;i<max;i++)
            printf("%d\t%d\n",i,a[i]);
            break;
        case 2:printf("THE HASH TABLE CONTAINS :\n");
            for(i=0;i<max;i++)
            {
                if(a[i]==-1)
                continue;
                printf("%d\t%d\n",i,a[i]);
            }
            break;
        default:printf("INVALID CHOICE\n");
    }
}   
void main()
{
    for(i=0;i<max;i++)
    a[i]=-1;
    while(1)
    {
        printf("\n-------MENU\n1. INSERT DATA\n2. DISPLAY\n3. EXIT\nENTER YOUR CHOICE :\n");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:insert();
                break;
            case 2:display();
                break;
            case 3:exit(0);
            default:printf("INVALID CHOICE\n");
        }
    }
}