Created
November 15, 2015 09:09
-
-
Save smamran/bc0478da33428e5d97c4 to your computer and use it in GitHub Desktop.
C HashMap
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <assert.h> // Conditionally compiled macro that compares its argument to zero | |
| #include <complex.h> // (since C99) Complex number arithmetic | |
| #include <ctype.h> // Functions to determine the type contained in character data | |
| #include <errno.h> // Macros reporting error conditions | |
| #include <fenv.h> // (since C99) Floating-point environment | |
| #include <float.h> // Limits of float types | |
| #include <inttypes.h>// (since C99) Format conversion of integer types | |
| #include <iso646.h> // (since C95) Alternative operator spellings | |
| #include <limits.h> // Sizes of basic types | |
| #include <locale.h> // Localization utilities | |
| #include <math.h> // Common mathematics functions | |
| #include <setjmp.h> // Nonlocal jumps | |
| #include <signal.h> // Signal handling | |
| #include <stdalign.h>// (since C11) alignas and alignof convenience macros | |
| #include <stdarg.h> // Variable arguments | |
| //#include <stdatomic.h>// (since C11) Atomic types | |
| #include <stdbool.h> // (since C99) Boolean type | |
| #include <stddef.h> // Common macro definitions | |
| #include <stdint.h> // (since C99) Fixed-width integer types | |
| #include <stdio.h> // Input/output | |
| #include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers | |
| #include <stdnoreturn.h> // (since C11) noreturn convenience macros | |
| #include <string.h> // String handling | |
| #include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h) | |
| //#include <threads.h> // (since C11) Thread library | |
| #include <time.h> // Time/date utilities | |
| //#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities | |
| #include <wchar.h> // (since C95) Extended multibyte and wide character utilities | |
| #include <wctype.h> // (since C95) Wide character classification and mapping utilities | |
| #include <pthread.h> | |
| ///====================================================================/////// | |
| #define HASH_MAP_SIZE 40 | |
| struct HashMap | |
| { | |
| char prefix[10]; | |
| int id; | |
| }; | |
| struct HashMap hashMap[HASH_MAP_SIZE]; /// initialize HashMap | |
| int hashMapCounter = 0; /// counter for total number of HashMap created | |
| pushHashMap(char prefix[], int id) | |
| { | |
| int location = hashMapCounter; /// structure location | |
| strcpy(hashMap[location].prefix, prefix); | |
| hashMap[location].id = id; | |
| hashMapCounter++; | |
| } | |
| int getID(char prefix[]) | |
| { | |
| int i; | |
| for( i = 0; i < hashMapCounter; i++) | |
| { | |
| if(!strcmp(hashMap[i].prefix, prefix)) | |
| { | |
| return hashMap[i].id; | |
| } | |
| } | |
| return -1; /// id not found | |
| } | |
| /// Driver Program To Test | |
| int main () | |
| { | |
| /// inserting data to HashMap | |
| pushHashMap("88012",2); | |
| pushHashMap("88011",1); | |
| pushHashMap("88013",3); | |
| pushHashMap("88015",5); | |
| pushHashMap("88014",4); | |
| printf("ID: %d", getID("88015")); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment