* @brief Union-Find datastructure
* @author Matthias Braun
* @version $Id$
- * @summary
+ * @brief
* Union-Find datastructure
*
* This implementation uses weighted sets and path compression which results
#include <assert.h>
+#include "../begin.h"
+
/**
* Call this to initialize an array of @p count elements to be used by the
* union find functions.
* @param data The union find data
* @param set1 Representative of set1
* @param set2 Representative of set2
- * @return 0 if the new union set is represented by set1, 1 if it is
- * represented by set2
+ * @return the new representative of the set (which is set1 or set2)
*/
static inline int uf_union(int* data, int set1, int set2)
{
int newcount;
if(set1 == set2)
- return 0;
+ return set1;
/* need 2 set representatives */
d1 = data[set1];
if(d1 > d2) {
data[set1] = set2;
data[set2] = newcount;
- return 1;
+ return set2;
} else {
data[set2] = set1;
data[set1] = newcount;
- return 0;
+ return set1;
}
}
return repr;
}
+#include "../end.h"
+
#endif