Я работаю над заданием DisjointSet в C уже пару дней.Я понимаю, что функции find (без сжатия путей) используют ранжирование в ссылке на функцию при объединении набора.Но у меня проблемы с синтаксисом C.
Мы должны создать массив записей, содержащих ранг и ключ для набора.поэтому моя структура выглядит так:
typedef struct DisjointSet_t {
int data;
int key;
} DisjointSet;
Моя проблема заключается в объявлении массива для манипулирования множеством.Что-то не так со мной, инициализируя массив для набора.Вот фрагмент кода CreateSet:
static DisjointSet *S;
void CreateSet(int numElements){
DisjointSet *t;
if (numElements > 0){
t = (DisjointSet *)malloc(sizeof(DisjointSet));
}
if(S != NULL){
S = t[numElements+1];
}
}
Если бы я реализовал это в Java, я думаю, это было бы немного проще.Как я могу улучшить это?Я что-то упускаю из понимания того, как инициализировать массивы классов в C?