diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-11-24 21:56:36 +0100 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-11-24 21:56:36 +0100 |
commit | 8211bf815dbcf193439fc3f0927a5e9de1bce3bc (patch) | |
tree | 8e5fa976fb43cfb38efc2a9bd2fa8d111b250a27 /set_linked_lists.c | |
parent | 7dc7d76a225a0eeac49689058bcb67c5fe328c33 (diff) | |
download | AlgoProg-Projet-8211bf815dbcf193439fc3f0927a5e9de1bce3bc.tar.gz AlgoProg-Projet-8211bf815dbcf193439fc3f0927a5e9de1bce3bc.zip |
Implemented basic algorithm for finding maximum clique... no optimizations.
Diffstat (limited to 'set_linked_lists.c')
-rw-r--r-- | set_linked_lists.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/set_linked_lists.c b/set_linked_lists.c index d7ea499..8cc77c4 100644 --- a/set_linked_lists.c +++ b/set_linked_lists.c @@ -51,11 +51,33 @@ typedef struct set_elt *element; set empty_set(int n) { set k = malloc(sizeof(t_set_descriptor)); + k->N = n; k->first = k->last = NULL; k->size = 0; return k; } +set full_set(int n) { + int i; + set k = malloc(sizeof(t_set_descriptor)); + k->N = n; + + element prev = NULL; + for (i = 0; i < n; i++) { + element e = malloc(sizeof(struct set_elt)); + e->value = i; + if (prev == NULL) { + k->first = e; + } else { + prev->next = e; + } + k->last = prev = e; + } + + k->size = n; + return k; +} + set copy_set(const set s) { element iter, prev; @@ -63,7 +85,7 @@ set copy_set(const set s) { t->size = s->size; t->first = NULL; - if (s->size) { + if (s->size > 0) { prev = malloc(sizeof(struct set_elt)); prev->value = s->first->value; t->first = prev; @@ -96,6 +118,10 @@ void delete_set(set s) { free(s); } +int set_size(const set s) { + return s->size; +} + void set_union_ip(set a, const set b) { if (b->size == 0) return; |