我的方法:处理链表的阵列
固定长度的数组(可以说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'? –