d

Run Settings
LanguageC
Language Version
Run Command
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdbool.h> #define SIZE 20 struct DataItem{ int data; int key; }; struct DataItem* hashArray[SIZE]; struct DataItem* dummyItem; struct DataItem* item; int hashCode(int key){ return key % SIZE; } struct DataItem* search(int key){ //getthehash int hashIndex=hashCode(key); while(hashArray[hashIndex]!=NULL){ if(hashArray[hashIndex]->key==key) return hashArray[hashIndex]; ++hashIndex; hashIndex%=SIZE; } return NULL; } void insert(int key,int data) { struct DataItem *item=(struct DataItem*) malloc(sizeof(struct DataItem*)); item->data=data; item->key=key; int hashIndex=hashCode(key); while((hashArray[hashIndex]!=NULL) && (hashArray[hashIndex]->key !=-1)){ ++hashIndex; hashIndex%=SIZE; } hashArray[hashIndex]=item; } struct DataItem *delete(struct DataItem *item) { int key=item->key; int hashIndex=hashCode(key); while(hashArray[hashIndex]!=NULL) { if(hashArray[hashIndex]->key==key) { struct DataItem* temp= hashArray[hashIndex]; hashArray[hashIndex]=dummyItem; return temp; } ++hashIndex; hashIndex %=SIZE; } return NULL; } void display(){ int i=0; for(i=0;i,i<SIZE;i++){ if(hashArray[i]!=NULL) printf("(%d,%d)",hashArray[i]->key,hashArray[i]->data); else printf("~~"); } printf("\n"); } int main(){ dummyItem=(struct DataItem*)malloc(sizeof(struct DataItem*)); dummyItem->data=-1; dummyItem->key =-1; insert(1,20); insert(2,70); insert(42,80); insert(12,44); insert(14,32); insert(17,11); insert(13,78); insert(37,97); display(); item=search(37); if(item != NULL){ printf("Element found:%d\n",item->data); }else{ printf("Element not found\n"); } delete(item); item=search(37); if(item!=NULL){ printf("Element found:%d\n",item->data); }else{ printf("Element not found"); } }
Editor Settings
Theme
Key bindings
Full width
Lines