Big Tabbing Change
[satune.git] / src / Collections / hashset.h
index f647c388711a583f49233dbbc8334a66836f61c9..c9656a69444a676e2f9f22843a3467b30766b638 100644 (file)
@@ -11,7 +11,7 @@
 #define HASH_SET_H
 #include "hashtable.h"
 
-#define HashSetDef(Name, _Key)                                                                                                                                                                 \
+#define HashSetDef(Name, _Key)                                          \
        struct LinkNode ## Name {                                             \
                _Key key;                                                           \
                struct LinkNode ## Name *prev;                                      \
        struct HashSet ## Name;                                               \
        typedef struct HashSet ## Name HashSet ## Name;                       \
        struct HSIterator ## Name {                                           \
-               LinkNode ## Name *curr;                                             \
-               LinkNode ## Name *last;                                             \
+               LinkNode ## Name * curr;                                             \
+               LinkNode ## Name * last;                                             \
                HashSet ## Name * set;                                              \
        };                                                                    \
        typedef struct HSIterator ## Name HSIterator ## Name;                 \
-       HashTableDef(Name ## Set, _Key, LinkNode ## Name *);                                                                    \
-       HSIterator ## Name * allocHSIterator ## Name(LinkNode ## Name *_curr, HashSet ## Name * _set); \
-       void deleteIter ## Name(HSIterator ## Name *hsit);                      \
-       bool hasNext ## Name(HSIterator ## Name *hsit);                       \
-       _Key next ## Name(HSIterator ## Name *hsit);                          \
-       _Key currKey ## Name(HSIterator ## Name *hsit);                       \
-       void removeIter ## Name(HSIterator ## Name *hsit);                        \
+       HashTableDef(Name ## Set, _Key, LinkNode ## Name *);                  \
+       HSIterator ## Name * allocHSIterator ## Name(LinkNode ## Name * _curr, HashSet ## Name * _set); \
+       void deleteIter ## Name(HSIterator ## Name * hsit);                      \
+       bool hasNext ## Name(HSIterator ## Name * hsit);                       \
+       _Key next ## Name(HSIterator ## Name * hsit);                          \
+       _Key currKey ## Name(HSIterator ## Name * hsit);                       \
+       void removeIter ## Name(HSIterator ## Name * hsit);                        \
        struct HashSet ## Name {                                              \
                HashTable ## Name ## Set * table;                                   \
-               LinkNode ## Name *list;                                             \
-               LinkNode ## Name *tail;                                             \
+               LinkNode ## Name * list;                                             \
+               LinkNode ## Name * tail;                                             \
        };                                                                    \
        typedef struct HashSet ## Name HashSet ## Name;                       \
                                                                         \
        HashSet ## Name * allocHashSet ## Name (unsigned int initialcapacity, double factor); \
-       void deleteHashSet ## Name(struct HashSet ## Name * set);               \
+       void deleteHashSet ## Name(struct HashSet ## Name *set);               \
        HashSet ## Name * copyHashSet ## Name(HashSet ## Name * set);                \
        void resetHashSet ## Name(HashSet ## Name * set);                         \
        bool addHashSet ## Name(HashSet ## Name * set,_Key key);                     \
 
 #define HashSetImpl(Name, _Key, hash_function, equals)                  \
        HashTableImpl(Name ## Set, _Key, LinkNode ## Name *, hash_function, equals, ourfree); \
-       HSIterator ## Name * allocHSIterator ## Name(LinkNode ## Name *_curr, HashSet ## Name * _set) { \
+       HSIterator ## Name * allocHSIterator ## Name(LinkNode ## Name * _curr, HashSet ## Name * _set) { \
                HSIterator ## Name * hsit = (HSIterator ## Name *)ourmalloc(sizeof(HSIterator ## Name)); \
-               hsit->curr=_curr;                                                   \
-               hsit->set=_set;                                                     \
+               hsit->curr = _curr;                                                   \
+               hsit->set = _set;                                                     \
                return hsit;                                                        \
        }                                                                     \
                                                                         \
-       void deleteIter ## Name(HSIterator ## Name *hsit) {                   \
+       void deleteIter ## Name(HSIterator ## Name * hsit) {                   \
                ourfree(hsit);                                                      \
        }                                                                     \
                                                                         \
-       bool hasNext ## Name(HSIterator ## Name *hsit) {                      \
-               return hsit->curr!=NULL;                                            \
+       bool hasNext ## Name(HSIterator ## Name * hsit) {                      \
+               return hsit->curr != NULL;                                            \
        }                                                                     \
                                                                         \
-       _Key next ## Name(HSIterator ## Name *hsit) {                         \
-               _Key k=hsit->curr->key;                                             \
-               hsit->last=hsit->curr;                                              \
-               hsit->curr=hsit->curr->next;                                        \
+       _Key next ## Name(HSIterator ## Name * hsit) {                         \
+               _Key k = hsit->curr->key;                                             \
+               hsit->last = hsit->curr;                                              \
+               hsit->curr = hsit->curr->next;                                        \
                return k;                                                           \
        }                                                                     \
                                                                         \
-       _Key currKey ## Name(HSIterator ## Name *hsit) {                      \
+       _Key currKey ## Name(HSIterator ## Name * hsit) {                      \
                return hsit->last->key;                                             \
        }                                                                     \
                                                                         \
-       void removeIter ## Name(HSIterator ## Name *hsit) {                   \
-               _Key k=hsit->last->key;                                             \
+       void removeIter ## Name(HSIterator ## Name * hsit) {                   \
+               _Key k = hsit->last->key;                                             \
                removeHashSet ## Name(hsit->set, k);                                    \
        }                                                                     \
                                                                         \
        HashSet ## Name * allocHashSet ## Name (unsigned int initialcapacity, double factor) { \
                HashSet ## Name * set = (HashSet ## Name *)ourmalloc(sizeof(struct HashSet ## Name));  \
-               set->table=allocHashTable ## Name ## Set(initialcapacity, factor);          \
-               set->list=NULL;                                                     \
-               set->tail=NULL;                                                     \
+               set->table = allocHashTable ## Name ## Set(initialcapacity, factor);          \
+               set->list = NULL;                                                     \
+               set->tail = NULL;                                                     \
                return set;                                                         \
        }                                                                       \
                                                                         \
-       void deleteHashSet ## Name(struct HashSet ## Name * set) {            \
-               LinkNode ## Name *tmp=set->list;                                    \
-               while(tmp!=NULL) {                                                  \
-                       LinkNode ## Name *tmpnext=tmp->next;                              \
+       void deleteHashSet ## Name(struct HashSet ## Name *set) {            \
+               LinkNode ## Name *tmp = set->list;                                    \
+               while (tmp != NULL) {                                                  \
+                       LinkNode ## Name * tmpnext = tmp->next;                              \
                        ourfree(tmp);                                                     \
-                       tmp=tmpnext;                                                      \
+                       tmp = tmpnext;                                                      \
                }                                                                   \
                deleteHashTable ## Name ## Set(set->table);                         \
                ourfree(set);                                                       \
        }                                                                     \
                                                                         \
        HashSet ## Name * copyHashSet ## Name(HashSet ## Name * set) {               \
-               HashSet ## Name *copy=allocHashSet ## Name(getCapacity ## Name ## Set(set->table), getLoadFactor ## Name ## Set(set->table)); \
-               HSIterator ## Name * it=iterator ## Name(set);                      \
-               while(hasNext ## Name(it))                                          \
+               HashSet ## Name * copy = allocHashSet ## Name(getCapacity ## Name ## Set(set->table), getLoadFactor ## Name ## Set(set->table)); \
+               HSIterator ## Name * it = iterator ## Name(set);                      \
+               while (hasNext ## Name(it))                                          \
                        addHashSet ## Name(copy, next ## Name(it));                              \
                deleteIter ## Name(it);                                             \
                return copy;                                                        \
        }                                                                     \
                                                                         \
        void resetHashSet ## Name(HashSet ## Name * set) {                        \
-               LinkNode ## Name *tmp=set->list;                                    \
-               while(tmp!=NULL) {                                                  \
-                       LinkNode ## Name *tmpnext=tmp->next;                              \
+               LinkNode ## Name * tmp = set->list;                                    \
+               while (tmp != NULL) {                                                  \
+                       LinkNode ## Name * tmpnext = tmp->next;                              \
                        ourfree(tmp);                                                     \
-                       tmp=tmpnext;                                                      \
+                       tmp = tmpnext;                                                      \
                }                                                                   \
-               set->list=set->tail=NULL;                                           \
+               set->list = set->tail = NULL;                                           \
                reset ## Name ## Set(set->table);                                   \
        }                                                                     \
                                                                         \
        bool addHashSet ## Name(HashSet ## Name * set,_Key key) {                    \
-               LinkNode ## Name * val=get ## Name ## Set(set->table, key);         \
-               if (val==NULL) {                                                    \
-                       LinkNode ## Name * newnode=(LinkNode ## Name *)ourmalloc(sizeof(struct LinkNode ## Name)); \
-                       newnode->prev=set->tail;                                          \
-                       newnode->next=NULL;                                               \
-                       newnode->key=key;                                                 \
-                       if (set->tail!=NULL)                                              \
-                               set->tail->next=newnode;                                        \
+               LinkNode ## Name * val = get ## Name ## Set(set->table, key);         \
+               if (val == NULL) {                                                    \
+                       LinkNode ## Name * newnode = (LinkNode ## Name *)ourmalloc(sizeof(struct LinkNode ## Name)); \
+                       newnode->prev = set->tail;                                          \
+                       newnode->next = NULL;                                               \
+                       newnode->key = key;                                                 \
+                       if (set->tail != NULL)                                              \
+                               set->tail->next = newnode;                                        \
                        else                                                              \
-                               set->list=newnode;                                              \
-                       set->tail=newnode;                                                \
+                               set->list = newnode;                                              \
+                       set->tail = newnode;                                                \
                        put ## Name ## Set(set->table, key, newnode);                     \
                        return true;                                                      \
                } else                                                              \
        }                                                                     \
                                                                         \
        _Key getHashSet ## Name(HashSet ## Name * set,_Key key) {                 \
-               LinkNode ## Name * val=get ## Name ## Set(set->table, key);         \
-               if (val!=NULL)                                                      \
+               LinkNode ## Name * val = get ## Name ## Set(set->table, key);         \
+               if (val != NULL)                                                      \
                        return val->key;                                                  \
                else                                                                \
                        return NULL;                                                      \
        }                                                                     \
                                                                         \
        bool containsHashSet ## Name(HashSet ## Name * set,_Key key) {            \
-               return get ## Name ## Set(set->table, key)!=NULL;                   \
+               return get ## Name ## Set(set->table, key) != NULL;                   \
        }                                                                     \
                                                                         \
        bool removeHashSet ## Name(HashSet ## Name * set,_Key key) {              \
                LinkNode ## Name * oldlinknode;                                     \
-               oldlinknode=get ## Name ## Set(set->table, key);                    \
-               if (oldlinknode==NULL) {                                            \
+               oldlinknode = get ## Name ## Set(set->table, key);                    \
+               if (oldlinknode == NULL) {                                            \
                        return false;                                                     \
                }                                                                   \
                remove ## Name ## Set(set->table, key);                             \
                                                                         \
-               if (oldlinknode->prev==NULL)                                        \
-                       set->list=oldlinknode->next;                                      \
+               if (oldlinknode->prev == NULL)                                        \
+                       set->list = oldlinknode->next;                                      \
                else                                                                \
-                       oldlinknode->prev->next=oldlinknode->next;                        \
-               if (oldlinknode->next!=NULL)                                        \
-                       oldlinknode->next->prev=oldlinknode->prev;                        \
+                       oldlinknode->prev->next = oldlinknode->next;                        \
+               if (oldlinknode->next != NULL)                                        \
+                       oldlinknode->next->prev = oldlinknode->prev;                        \
                else                                                                \
-                       set->tail=oldlinknode->prev;                                      \
+                       set->tail = oldlinknode->prev;                                      \
                ourfree(oldlinknode);                                               \
                return true;                                                        \
        }                                                                     \
        }                                                                     \
                                                                         \
        bool isEmptyHashSet ## Name(HashSet ## Name * set) {                         \
-               return getSizeHashSet ## Name(set)==0;                                  \
+               return getSizeHashSet ## Name(set) == 0;                                  \
        }                                                                     \
                                                                         \
        HSIterator ## Name * iterator ## Name(HashSet ## Name * set) {        \