list.h 699 B

123456789101112131415161718192021
  1. #ifndef _LIST_H
  2. #define _LIST_H
  3. typedef struct list_node {
  4. void *data;
  5. struct list_node *next;
  6. } list_node;
  7. /* linked list */
  8. list_node* list_create(void *data);
  9. void list_destroy(list_node **list);
  10. list_node* list_insert_after(list_node *node, void *data);
  11. list_node* list_insert_beginning(list_node *list, void *data);
  12. list_node* list_insert_end(list_node *list, void *data);
  13. void list_remove(list_node **list, list_node *node);
  14. void list_remove_by_data(list_node **list, void *data);
  15. list_node* list_find_node(list_node *list, list_node *node);
  16. list_node* list_find_by_data(list_node *list, void *data);
  17. list_node* list_find(list_node *list, int(*func)(list_node*,void*), void *data);
  18. #endif