【发布时间】:2014-07-05 22:17:22
【问题描述】:
这是我的代码。它不起作用:
void insertioon (int d) // this part, insert and sort list
{
struct node *np, *temp, *prev;
int found;
np=malloc(sizeof(struct node));
np->data = d;
np->nextPtr = NULL;
temp=firstPtr;
found=0;
while ((temp != NULL) && !found)
{
if (temp->data <d)
{
prev = temp;
temp = temp->nextPtr;
}
else
{
found=1;
}
if (prev == NULL)
{
np->nextPtr=firstPtr;
firstPtr=np;
}
else
{
prev->nextPtr = np;
np->nextPtr = temp;
}
}
}
我的错误是什么?在 insertionon 中,我想对这个列表进行排序。
【问题讨论】:
-
while循环中的插入操作。和
prev取消初始化。 -
@BLUEPIXY 但我写的是 prev = temp;我初始化 prev
-
进入循环前必须初始化为NULL。
-
是的,但是你还要测试是否
prev == NULL。为此,您必须将prev初始化为NULL。 -
@BLUEPIXY 好的,我用 return node 更改了我的 insertSorted 方法。现在它工作正常:D 非常感谢您