aboutsummaryrefslogtreecommitdiff
path: root/test_mini/libft/src/ht
diff options
context:
space:
mode:
Diffstat (limited to 'test_mini/libft/src/ht')
-rw-r--r--test_mini/libft/src/ht/ft_htdelone.c29
-rw-r--r--test_mini/libft/src/ht/ft_htdestroy.c30
-rw-r--r--test_mini/libft/src/ht/ft_htentry_new.c37
-rw-r--r--test_mini/libft/src/ht/ft_htget.c35
-rw-r--r--test_mini/libft/src/ht/ft_hthash.c36
-rw-r--r--test_mini/libft/src/ht/ft_htiter.c31
-rw-r--r--test_mini/libft/src/ht/ft_htnew.c38
-rw-r--r--test_mini/libft/src/ht/ft_htset.c56
-rw-r--r--test_mini/libft/src/ht/ft_inter_htkey_cmp.c25
9 files changed, 0 insertions, 317 deletions
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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <charles.cabergs@gmail.com> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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 <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* 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));
-}