我的方法:處理鏈表的陣列
固定長度的數組(可以說20)的每個元素是指向一個鏈表的第一個節點。 所以我有20個不同的鏈表。
這是結構:
struct node{
char data[16];
struct node *next;
};
我對於數組聲明
struct node *nodesArr[20];
現在到一個新的節點添加到鏈接列表中的一個,我這樣做:
struct node *temp;
temp = nodesArr[i]; // i is declared and its less than 20
addNode(temp,word); // word is declared (char *word) and has a value ("hello")
加入節點功能:
,並從鏈表的陣列打印數據,我這樣做:
void print(){
int i;
struct node *temp;
for(i=0 ; i < 20; i++){
temp = nodesArr[i];
while(temp != NULL){
printf("%s\n",temp->data);
temp = temp->next;
}
}
}
現在編譯器會發出任何錯誤,程序運行和我的數據傳遞給它,當我打電話打印它不打印任何東西,, ??
更新::
後,我編輯的代碼(感謝你),我想在打印功能的問題,,什麼想法?
你試過踩着它通過一個調試器,或添加有用'printf'報表? –
是啊我試過了,但我什麼都沒有 –
你什麼都沒有?例如,你不能發現'nodesArr'的所有元素在什麼時候變成了'NULL'? –