ft_dict_insert.c \
ft_dict_traversal.c \
ft_llist.c \
+ ft_llist_insert.c \
ft_llist_delete.c \
ft_graph.c \
ft_graph_helpers.c \
return (success);
}
-t_llist_node *ft_llist_insert(t_llist *list, void *element)
-{
- t_llist_node *node;
- t_llist_node *new_node;
-
- if (!list || !element)
- return (NULL);
- new_node = malloc(sizeof(*new_node) + list->el_size);
- if (!new_node)
- return (NULL);
- ft_memcpy(&new_node->data, element, list->el_size);
- new_node->next = NULL;
- node = list->head;
- if (!node)
- {
- list->head = new_node;
- return (new_node);
- }
- while (node->next)
- node = node->next;
- node->next = new_node;
- return (new_node);
-}
-
-t_llist_node *ft_llist_insert_head(t_llist *list, void *element)
-{
- t_llist_node *new_node;
-
- if (!list || !element)
- return (NULL);
- new_node = malloc(sizeof(*new_node) + list->el_size);
- if (!new_node)
- return (NULL);
- ft_memcpy(&new_node->data, element, list->el_size);
- new_node->next = list->head;
- list->head = new_node;
- return (new_node);
-}
-
void *ft_llist_access(t_llist_node *node)
{
return (&node->data);
--- /dev/null
+#include "ft_struct.h"
+#include "libft.h"
+#include <stdlib.h>
+
+t_llist_node *ft_llist_insert(t_llist *list, void *element)
+{
+ t_llist_node *new_node;
+
+ if (!list || !element)
+ return (NULL);
+ new_node = malloc(sizeof(*new_node) + list->el_size);
+ if (!new_node)
+ return (NULL);
+ ft_memcpy(&new_node->data, element, list->el_size);
+ new_node->next = NULL;
+ if (list->tail)
+ {
+ list->tail->next = new_node;
+ list->tail = new_node;
+ }
+ else
+ {
+ list->head = new_node;
+ list->tail = new_node;
+ }
+ return (new_node);
+}
+
+t_llist_node *ft_llist_insert_head(t_llist *list, void *element)
+{
+ t_llist_node *new_node;
+
+ if (!list || !element)
+ return (NULL);
+ new_node = malloc(sizeof(*new_node) + list->el_size);
+ if (!new_node)
+ return (NULL);
+ ft_memcpy(&new_node->data, element, list->el_size);
+ new_node->next = list->head;
+ list->head = new_node;
+ return (new_node);
+}
{
size_t el_size;
t_llist_node *head;
+ t_llist_node *tail;
} t_llist;
t_ft_stat ft_llist_init(t_llist *list, size_t el_size);