sorted_list.h 598 B

12345678910111213141516171819202122232425
  1. /*
  2. * sorted_list.h:
  3. *
  4. */
  5. #ifndef __SORTED_LIST_H_ /* include guard */
  6. #define __SORTED_LIST_H_
  7. typedef struct sorted_list_node_tag {
  8. struct sorted_list_node_tag* next;
  9. void* data;
  10. } sorted_list_node;
  11. typedef struct {
  12. sorted_list_node root;
  13. int (*compare)(void*, void*);
  14. } sorted_list_type;
  15. void sorted_list_initialise(sorted_list_type* list);
  16. void sorted_list_insert(sorted_list_type* list, void* item);
  17. sorted_list_node* sorted_list_next_item(sorted_list_type* list, sorted_list_node* prev);
  18. void sorted_list_destroy(sorted_list_type* list);
  19. #endif /* __SORTED_LIST_H_ */