【发布时间】:2013-04-01 01:41:04
【问题描述】:
我正在尝试创建一个可以将信息添加到链接列表的程序。似乎一旦我添加了 2 个以上的节点,之前添加的节点就会被覆盖。在完成这项工作时我缺少什么吗?
我从这个函数开始,它要么添加到列表的前面,要么如果已经有一个节点添加到前面,它会调用函数 addToBack
ListHeadPtr Front(ListHeadPtr theList, list * toBeAdded){
printf("Received in addToFront\n");
if(theList == NULL){
theList = toBeAdded;
return(theList);
}
else{
theList = addToBack(theList,toBeAdded);
/*toBeAdded->next = theList;
theList = toBeAdded;*/
return (theList);
}
}
ListHeadPtr back(ListHeadPtr theList, item * toBeAdded){
if(theList == NULL){
theList = addToFront(theList,toBeAdded);
return(theList);
}
else{
list *current;
current = theList;
while (current->next!=NULL){
current = current->next;
}
current->next = toBeAdded;
return(current);
}
}
item(toBeAdded 由这个函数定义
item *createItem(int time){
item *itemPtr = (list *) malloc(sizeof(item));
if(NULL == itemPtr)
{
printf("Unable to create item\n");
return (NULL);
}
itemPtr->waitTime = time;
itemPtr->next = NULL;
return (itemPtr);
}
【问题讨论】:
-
您是否尝试过使用调试器单步执行?
-
@MitchWheat 不知道该怎么做。我对 C 还是很陌生。
-
学习使用调试器非常有用,但在许多情况下,阅读代码并查看它是否符合您的要求会更快。看我的回答......(还)不需要调试器。
标签: c pointers insert linked-list