我一直在C上工作了幾天的DisjointSet任務。我理解函數find(w /和w/o路徑壓縮),在函數鏈接中使用rank來對一個集合執行聯合時。但是我遇到了C語法問題。DisjointSet疑難問題
我們必須製作一組記錄,其中包含排名和該集的關鍵字。所以我的結構看起來:
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中初始化類數組?
全局數據初始化爲0。並不是明確地這樣做是一個壞主意。 – 2010-11-09 01:45:25