Hashing ....

#include<stdio.h>
int key,found=0;
int hash_function(int v);
void insert(int []);
void search(int []);
void deletef(int []);
void display(int []);
int main(){
int ht[10],i,op;
for(i=0;i<10;i++)
ht[i]=-1;
do{
printf("\nEnter an option :\n");
printf("1.insert\n2.search\n3.delete\n4.display\n5.EXIT\n");
scanf("%d",&op);
switch(op){
case 1:insert(ht);break;
case 2:search(ht);break;
case 3:deletef(ht);break;
case 4:display(ht);break;
}
}while(op!=5);
return 0;
}

int hash_function(int v){
return v%10;
}
void insert(int ht[]){
int val,i,flag=0;
printf("Enter a number :\n");
scanf("%d",&val);
key=hash_function(val);
if(ht[key]==-1){
ht[key]=val;
}
else{
for(i=key+1;i<10;i++){
if(ht[i]==-1){
ht[i]=val;
flag=1;
break;
}
}
if(flag==0){
for(i=0;i<key;i++){
if(ht[i]==-1){
ht[i]=val;
flag=1;
break;
}
}
}
}
if(flag==1){
printf("No space cannt insert");
}
else
printf("Inserted\n");
}
void search(int ht[]){
int val,i;
printf("Enter an element to search:\n");
scanf("%d",&val);
key=hash_function(val);
if(ht[key]==val){
found=1;
}
else{
for(i=key+1;i<10;i++){
if(ht[i]==val){
found=1;
key=i;
break;
}
}
if(found==0){
for(i=0;i<key;i++){
if(ht[i]==val){
found=1;
key=i;
break;
}
}
}
}
if(found==1){
printf("Element found\n");
}
else
printf("Element not found\n");
}
void deletef(int ht[]){
search(ht);
if(found==1){
ht[key]=-1;
key=-1;
found=0;
printf("Element deleted\n");
}
else{
printf("Element not deleted\n");;
}
}
void display(int ht[]){
int i;
for(i=0;i<10;i++){
if(ht[i]!=-1)
printf("%d\t",ht[i]);
}
}

Comments

Popular Posts