From d971bd8d16608f316396aba7a579d0b1f1af5aeb Mon Sep 17 00:00:00 2001 From: nass1pro Date: Fri, 12 Jun 2020 13:52:58 +0200 Subject: Added e_token enum --- test_mini/libft/src/ht/ft_htdelone.c | 29 --------------- test_mini/libft/src/ht/ft_htdestroy.c | 30 ---------------- test_mini/libft/src/ht/ft_htentry_new.c | 37 ------------------- test_mini/libft/src/ht/ft_htget.c | 35 ------------------ test_mini/libft/src/ht/ft_hthash.c | 36 ------------------- test_mini/libft/src/ht/ft_htiter.c | 31 ---------------- test_mini/libft/src/ht/ft_htnew.c | 38 -------------------- test_mini/libft/src/ht/ft_htset.c | 56 ----------------------------- test_mini/libft/src/ht/ft_inter_htkey_cmp.c | 25 ------------- 9 files changed, 317 deletions(-) delete mode 100644 test_mini/libft/src/ht/ft_htdelone.c delete mode 100644 test_mini/libft/src/ht/ft_htdestroy.c delete mode 100644 test_mini/libft/src/ht/ft_htentry_new.c delete mode 100644 test_mini/libft/src/ht/ft_htget.c delete mode 100644 test_mini/libft/src/ht/ft_hthash.c delete mode 100644 test_mini/libft/src/ht/ft_htiter.c delete mode 100644 test_mini/libft/src/ht/ft_htnew.c delete mode 100644 test_mini/libft/src/ht/ft_htset.c delete mode 100644 test_mini/libft/src/ht/ft_inter_htkey_cmp.c (limited to 'test_mini/libft/src/ht') diff --git a/test_mini/libft/src/ht/ft_htdelone.c b/test_mini/libft/src/ht/ft_htdelone.c deleted file mode 100644 index 7374a44..0000000 --- a/test_mini/libft/src/ht/ft_htdelone.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htdelone.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:27:18 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:10:16 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Delete one hash table entry -** \param key Key of entry to delete -** \param del Function to destroy the entry -** \warning The del function HAS to free the key -** \note Do nothing if their is to entry which correspond to key -*/ - -void ft_htdelone(t_ftht *ht, char *key, void (*del)(t_ftht_entry*)) -{ - ft_lstremove_if(ht->buckets + ft_hthash(ht, key), - ft_inter_htkey_cmp, key, - (void (*)(void*))del); -} diff --git a/test_mini/libft/src/ht/ft_htdestroy.c b/test_mini/libft/src/ht/ft_htdestroy.c deleted file mode 100644 index ff362d2..0000000 --- a/test_mini/libft/src/ht/ft_htdestroy.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htdestroy.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:31:02 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:10:31 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Destroy an hash table. -** \param del Function to delete each entry -** \warning The del function HAS to free the key -*/ - -void ft_htdestroy(t_ftht *ht, void (*del)(t_ftht_entry*)) -{ - if (ht == NULL) - return ; - while (ht->size-- > 0) - ft_lstdestroy(ht->buckets + ht->size, (void (*)(void*))del); - free(ht->buckets); - free(ht); -} diff --git a/test_mini/libft/src/ht/ft_htentry_new.c b/test_mini/libft/src/ht/ft_htentry_new.c deleted file mode 100644 index 12a1159..0000000 --- a/test_mini/libft/src/ht/ft_htentry_new.c +++ /dev/null @@ -1,37 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htentry_new.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:45:36 by cacharle #+# #+# */ -/* Updated: 2020/02/17 04:09:50 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create a new hash table key/value pair. -** \param key Hash entry string key (always duplicated) -** \return Content or NULL if an allocation failed. -*/ - -t_ftht_entry *ft_htentry_new(char *key, void *value) -{ - t_ftht_entry *content; - - if (key == NULL) - return (NULL); - if ((content = (t_ftht_entry*)malloc(sizeof(t_ftht_entry))) == NULL) - return (NULL); - if ((content->key = ft_strdup(key)) == NULL) - { - free(content); - return (NULL); - } - content->value = value; - return (content); -} diff --git a/test_mini/libft/src/ht/ft_htget.c b/test_mini/libft/src/ht/ft_htget.c deleted file mode 100644 index a6383fe..0000000 --- a/test_mini/libft/src/ht/ft_htget.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htget.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:33:21 by cacharle #+# #+# */ -/* Updated: 2020/04/01 18:02:57 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Retrieve a value with a key -** \param ht Hash table where key is searched -** \param key Searched key -** \return Value void pointer at key or NULL if not found -*/ - -void *ft_htget(t_ftht *ht, char *key) -{ - t_ftht_digest digest; - t_ftlst *found; - - if (ht == NULL || key == NULL) - return (NULL); - digest = ft_hthash(ht, key); - found = ft_lstlfind(ht->buckets[digest], ft_inter_htkey_cmp, key); - if (found == NULL) - return (NULL); - return (((t_ftht_entry*)found->data)->value); -} diff --git a/test_mini/libft/src/ht/ft_hthash.c b/test_mini/libft/src/ht/ft_hthash.c deleted file mode 100644 index 3369d24..0000000 --- a/test_mini/libft/src/ht/ft_hthash.c +++ /dev/null @@ -1,36 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_hthash.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:56:01 by cacharle #+# #+# */ -/* Updated: 2020/01/30 10:34:27 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_ht.h" - -/* -** \brief Hash a string -** \param ht So that the index is in the hash table bound -** \param key String to hash -** \return Hash -*/ - -// maybe use a less efficient but understandable function -t_ftht_digest ft_hthash(t_ftht *ht, char *key) -{ - t_ftht_digest digest; - - if (*key == '\0') - return (0); - digest = *key++ << 7; - while (*key != '\0') - { - digest = ((1000003 * digest) ^ *key) & (1 << 16); - key++; - } - return (digest % ht->size); -} diff --git a/test_mini/libft/src/ht/ft_htiter.c b/test_mini/libft/src/ht/ft_htiter.c deleted file mode 100644 index b854993..0000000 --- a/test_mini/libft/src/ht/ft_htiter.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htiter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: charles +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/04/01 18:02:24 by charles #+# #+# */ -/* Updated: 2020/04/01 18:02:32 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft_ht.h" - -/* -** \brief Iterate over entry of hash table -** \param ht Iterated hash table -** \param f Function applied to each entry -*/ - -void ft_htiter(t_ftht *ht, void (*f)(t_ftht_entry*)) -{ - size_t i; - - i = 0; - while (i < ht->size) - { - ft_lstiter(ht->buckets[i], (void (*)(void*))f); - i++; - } -} diff --git a/test_mini/libft/src/ht/ft_htnew.c b/test_mini/libft/src/ht/ft_htnew.c deleted file mode 100644 index e5335d2..0000000 --- a/test_mini/libft/src/ht/ft_htnew.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htnew.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:19:16 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:23:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create a new hash table. -** \param size Size of the underlying array of linked list (buckets) -** \return Created hash table or NULL is an allocation failed -*/ - -t_ftht *ft_htnew(t_ftsize size) -{ - t_ftht *ht; - - if (size == 0) - return (NULL); - if ((ht = (t_ftht*)malloc(sizeof(t_ftht))) == NULL) - return (NULL); - ht->buckets = (t_ftht_bucket*)ft_calloc(size, sizeof(t_ftht_entry)); - if (ht->buckets == NULL) - { - free(ht); - return (NULL); - } - ht->size = size; - return (ht); -} diff --git a/test_mini/libft/src/ht/ft_htset.c b/test_mini/libft/src/ht/ft_htset.c deleted file mode 100644 index 68d3752..0000000 --- a/test_mini/libft/src/ht/ft_htset.c +++ /dev/null @@ -1,56 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_htset.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 08:41:52 by cacharle #+# #+# */ -/* Updated: 2020/04/01 18:02:12 by charles ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** \brief Create/Update a entry in hash table. -** \note If `key` already exist in `ht` -** only updates the list node content. -** Else create a new list node in addition the list content. -** \param ht Hash table where the entry is modified -** \param key Key of the new entry -** \param value Value of the new entry -** \param del Destroy function in case the entry is modified. -** \return Pointer to the created entry, NULL if an allocation failed. -*/ - -t_ftht_entry *ft_htset(t_ftht *ht, char *key, void *value, - void (*del)(t_ftht_entry*)) -{ - t_ftht_digest digest; - t_ftht_entry *content; - t_ftht_bucket bucket; - t_ftlst *tmp; - - if (ht == NULL || key == NULL) - return (NULL); - if ((content = ft_htentry_new(key, value)) == NULL) - return (NULL); - digest = ft_hthash(ht, key); - tmp = ft_lstlfind(ht->buckets[digest], ft_inter_htkey_cmp, key); - if (tmp != NULL) - { - if (del != NULL) - del(tmp->data); - tmp->data = content; - return ((t_ftht_entry*)tmp->data); - } - if ((bucket = ft_lstnew(content)) == NULL) - { - del(content); - return (NULL); - } - ft_lstpush_front(ht->buckets + digest, bucket); - return (content); -} diff --git a/test_mini/libft/src/ht/ft_inter_htkey_cmp.c b/test_mini/libft/src/ht/ft_inter_htkey_cmp.c deleted file mode 100644 index e8a0375..0000000 --- a/test_mini/libft/src/ht/ft_inter_htkey_cmp.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_internal_htkey_equal.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/01/30 09:24:39 by cacharle #+# #+# */ -/* Updated: 2020/02/28 12:20:43 by cacharle ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" -#include "libft_ht.h" - -/* -** Hash table internal function to compare key string in linked list. -*/ - -int ft_inter_htkey_cmp(const void *ref_key, const void *content) -{ - if (ref_key == NULL || content == NULL) - return (-1); - return (ft_strcmp((char*)ref_key, ((t_ftht_entry*)content)->key)); -} -- cgit