summaryrefslogtreecommitdiff
path: root/sorted_list.h
blob: 734e69be273f955a2dd46f3a7fe729a8cbe596a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
 * sorted_list.h:
 *
 */

#ifndef __SORTED_LIST_H_ /* include guard */
#define __SORTED_LIST_H_

typedef struct sorted_list_node_tag {
    struct sorted_list_node_tag* next;
    void* data;
} sorted_list_node;

typedef struct {
    sorted_list_node root;
    int (*compare)(void*, void*);
} sorted_list_type;

void sorted_list_initialise(sorted_list_type* list);
void sorted_list_insert(sorted_list_type* list, void* item);
sorted_list_node* sorted_list_next_item(sorted_list_type* list, sorted_list_node* prev);
void sorted_list_destroy(sorted_list_type* list);


#endif /* __SORTED_LIST_H_ */