這是我的代碼。它不起作用:爲什麼我的排序代碼不能在c中工作?
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;
}
}
}
我的錯誤是什麼?在insertioon中,我想對這個列表進行排序。
while循環中的插入操作。和'prev'未初始化。 – BLUEPIXY
@BLUEPIXY但我寫prev = temp;我初始化爲 – user3142663
在進入循環之前,您必須初始化爲NULL。 – BLUEPIXY