diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2015-07-02 16:08:10 -0700 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2015-07-02 16:08:10 -0700 |
| commit | 759858311aab27cfb3265835c58a56b612731fb0 (patch) | |
| tree | 93240f0aa1f45631152eed13e7c8d7c3b4ad91a6 /cover.h | |
| parent | 0f600a65c7f33986df447c3611909037a6208d71 (diff) | |
| download | cover-759858311aab27cfb3265835c58a56b612731fb0.tar.gz | |
First fully working version
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 |
