diff options
Diffstat (limited to 'cover.h')
| -rw-r--r-- | cover.h | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -0,0 +1,48 @@ +#ifndef COVER_H +#define COVER_H +typedef struct set set; +typedef struct element element; +typedef struct bucket bucket; +typedef struct parent parent; + +struct element { + int id; + element* next; + element* prev; + set* set; +}; + +struct bucket { + int size; + bucket* prev; + bucket* next; + set* head; +}; + +struct set { + int id; + set* next; + set* prev; + element* head; + bucket* bucket; +}; + +struct parent { + element* pos; + parent* next; +}; + +element* insert_element(set* s, int id); +set* new_set(int id); +parent* new_parent(element* el); +void insert_parent(parent** parents, element* el); +bucket* new_bucket(set* s, int size); +void insert_set(set* s, bucket* b); +void remove_bucket(bucket* b); +void detach_set(set* s); +void attach_set(set* s, int size, bucket* b); +void demote(set* s); +void remove_element(element* el); +void remove_parents(element* el, parent** parents); +void greedy(bucket* head, parent** parents); +#endif |
