# include "ft_arr.h"
# include <sys/types.h>
+typedef struct s_linked_list_node t_llist_node;
+
+struct s_linked_list_node
+{
+ t_llist_node *next;
+ char data[];
+};
+
+typedef struct s_linked_list
+{
+ size_t el_size;
+ t_llist_node *head;
+} t_llist;
+
+t_ft_stat ft_llist_init(t_llist *list, size_t el_size);
+// Because of notoriously slow access, the insert function returns a pointer to
+// the inserted node instead of t_ft_stat (so the user needs not traverse).
+// NULL signifies an error (probably failed allocation of memory).
+t_llist_node *ft_llist_insert(t_llist *list, void *element);
+t_llist_node *ft_llist_insert_head(t_llist *list, void *element);
+void *ft_llist_access(t_llist_node *node);
+void ft_llist_delete(t_llist *list,
+ t_llist_node *node, t_free_fun free_el);
+void ft_llist_delete_next(
+ t_llist_node *node, t_free_fun free_el);
+void ft_llist_delete_head(t_llist *list, t_free_fun free_el);
+void ft_llist_free(t_llist *list, t_free_fun free_el);
+
typedef struct s_stack
{
- t_vec vec;
+ t_llist list;
} t_stack;
t_ft_stat ft_stack_init(t_stack *stack, size_t el_size);
void *ft_dict_traverse(t_dict_traversal *traversal);
void ft_dict_traversal_free(t_dict_traversal *traversal);
-typedef struct s_linked_list_node t_llist_node;
-
-struct s_linked_list_node
-{
- t_llist_node *next;
- char data[];
-};
-
-typedef struct s_linked_list
-{
- size_t el_size;
- t_llist_node *head;
-} t_llist;
-
-t_ft_stat ft_llist_init(t_llist *list, size_t el_size);
-// Because of notoriously slow access, the insert function returns a pointer to
-// the inserted node instead of t_ft_stat (so the user needs not traverse).
-// NULL signifies an error (probably failed allocation of memory).
-t_llist_node *ft_llist_insert(t_llist *list, void *element);
-t_llist_node *ft_llist_insert_head(t_llist *list, void *element);
-void *ft_llist_access(t_llist_node *node);
-void ft_llist_delete(t_llist *list,
- t_llist_node *node, t_free_fun free_el);
-void ft_llist_delete_next(
- t_llist_node *node, t_free_fun free_el);
-void ft_llist_delete_head(t_llist *list, t_free_fun free_el);
-void ft_llist_free(t_llist *list, t_free_fun free_el);
-
typedef struct s_graph_node
{
t_vec connected_nodes;