parent
7ea69ccbd8
commit
ea054fc0d3
@ -0,0 +1,59 @@ |
|||||||
|
/*
|
||||||
|
* dict.c |
||||||
|
* |
||||||
|
* Created on: 30 Sep 2022 |
||||||
|
* Author: simon |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "dict.h" |
||||||
|
|
||||||
|
dict_t** dictAlloc(void){ |
||||||
|
return malloc(sizeof(dict_t)); |
||||||
|
} |
||||||
|
|
||||||
|
void dictDealoc(dict_t** dict){ |
||||||
|
free(dict); |
||||||
|
} |
||||||
|
|
||||||
|
void* getItem(dict_t* dict, char* key){ |
||||||
|
dict_t *ptr; |
||||||
|
for(ptr =dict; ptr !=NULL; ptr=ptr->next){ |
||||||
|
if(strcmp(ptr->key, key) == 0){ |
||||||
|
return ptr->value; |
||||||
|
} |
||||||
|
} |
||||||
|
return NULL; |
||||||
|
} |
||||||
|
|
||||||
|
void delItem(dict_t** dict, char* key){ |
||||||
|
dict_t *ptr, *prev; |
||||||
|
for(ptr=*dict, prev=NULL; ptr!=NULL; prev=ptr, ptr=ptr->next){ |
||||||
|
if(strcmp(ptr->key, key) == 0){ // key match?
|
||||||
|
if(ptr->next != NULL){ // not at end of dict?
|
||||||
|
if(prev == NULL){ |
||||||
|
*dict = ptr->next; // item is first one in dict
|
||||||
|
}else{ |
||||||
|
prev->next = ptr->next; // not first and last -> set to next
|
||||||
|
} |
||||||
|
}else if(prev != NULL){ |
||||||
|
prev->next = NULL; // at end, delete last item
|
||||||
|
}else{ |
||||||
|
*dict=NULL; // first and last -> only one item in dict
|
||||||
|
} |
||||||
|
} |
||||||
|
free(ptr->key); |
||||||
|
free(ptr); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void addItem(dict_t** dict, char* key, void* value){ |
||||||
|
delItem(dict, key); // if item already exists delete it!
|
||||||
|
dict_t *d = malloc(sizeof(struct dict_t_struct)); // new dict
|
||||||
|
d->key = malloc(strlen(key)+1); |
||||||
|
// set values
|
||||||
|
strcpy(d->key, key); |
||||||
|
d->value = value; |
||||||
|
d->next = *dict; |
||||||
|
// item at first pos
|
||||||
|
*dict=d; |
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
/*
|
||||||
|
* dict.h |
||||||
|
* |
||||||
|
* Created on: 30 Sep 2022 |
||||||
|
* Author: simon |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef LIB_DICT_H_ |
||||||
|
#define LIB_DICT_H_ |
||||||
|
|
||||||
|
#include "string.h" |
||||||
|
|
||||||
|
typedef struct dict_t_struct { |
||||||
|
char *key; |
||||||
|
void *value; |
||||||
|
struct dict_t_struct *next; |
||||||
|
} dict_t; |
||||||
|
|
||||||
|
dict_t** dictAlloc(void); |
||||||
|
|
||||||
|
void dictDealoc(dict_t** dict); |
||||||
|
|
||||||
|
void* getItem(dict_t* dict, char* key); |
||||||
|
|
||||||
|
void delItem(dict_t** dict, char* key); |
||||||
|
|
||||||
|
void addItem(dict_t** dict, char* key, void* value); |
||||||
|
|
||||||
|
#endif /* LIB_DICT_H_ */ |
||||||
@ -0,0 +1,55 @@ |
|||||||
|
/*
|
||||||
|
* splitflap_display.h |
||||||
|
* |
||||||
|
* Created on: 30 Sep 2022 |
||||||
|
* Author: simon |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef SPLITFLAP_FLAPS_H_ |
||||||
|
#define SPLITFLAP_FLAPS_H_ |
||||||
|
|
||||||
|
#include <string.h> |
||||||
|
#define SF_A (char*)'A' |
||||||
|
#define SF_B (char*)'B' |
||||||
|
#define SF_C (char*)'C' |
||||||
|
#define SF_D (char*)'D' |
||||||
|
#define SF_E (char*)'E' |
||||||
|
#define SF_F (char*)'F' |
||||||
|
#define SF_G (char*)'G' |
||||||
|
#define SF_H (char*)'H' |
||||||
|
#define SF_I (char*)'I' |
||||||
|
#define SF_J (char*)'J' |
||||||
|
#define SF_K (char*)'K' |
||||||
|
#define SF_L (char*)'L' |
||||||
|
#define SF_M (char*)'M' |
||||||
|
#define SF_N (char*)'N' |
||||||
|
#define SF_O (char*)'O' |
||||||
|
#define SF_P (char*)'P' |
||||||
|
#define SF_Q (char*)'Q' |
||||||
|
#define SF_R (char*)'R' |
||||||
|
#define SF_S (char*)'S' |
||||||
|
#define SF_T (char*)'T' |
||||||
|
#define SF_U (char*)'U' |
||||||
|
#define SF_V (char*)'V' |
||||||
|
#define SF_W (char*)'W' |
||||||
|
#define SF_X (char*)'X' |
||||||
|
#define SF_Y (char*)'Y' |
||||||
|
#define SF_Z (char*)'Z' |
||||||
|
#define SF_0 (char*)'0' |
||||||
|
#define SF_1 (char*)'1' |
||||||
|
#define SF_2 (char*)'2' |
||||||
|
#define SF_3 (char*)'3' |
||||||
|
#define SF_4 (char*)'4' |
||||||
|
#define SF_5 (char*)'5' |
||||||
|
#define SF_6 (char*)'6' |
||||||
|
#define SF_7 (char*)'7' |
||||||
|
#define SF_8 (char*)'8' |
||||||
|
#define SF_9 (char*)'9' |
||||||
|
#define SF_EXCLAMATION (char*)'!' |
||||||
|
#define SF_QUESTION (char*)'?' |
||||||
|
#define SF_COLON (char*)':' |
||||||
|
#define SF_SPACE (char*)' ' |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* SPLITFLAP_FLAPS_H_ */ |
||||||
Loading…
Reference in new issue