我想寫插入數字(從用戶)功能的節點(每個節點1號)的鏈接列表,然後將它們排序,按照升序方式。 我寫了這個功能:排序按照升序方式
void insertnode(struct n_node *head)
{
struct n_node *temp = head;
int number;
printf("Please insert a number to the node\n");
scanf("%d", &number);
while (number != SENTRY)
{
while ((temp->next != NULL) && (temp->next->num < number))
{
temp = temp->next;
}
struct n_node *addNode = (struct n_node*)malloc(sizeof(struct n_node));
addNode->num = number;
if (temp->next == NULL && number < temp->num)
{
addNode->next = temp;
head = addNode;
}
else
{
addNode->next = temp->next;
temp->next = addNode;
}
temp = head;
scanf("%d", &number);
}
options();
}
它編譯但右後我插入第一個數字是停,讓我在這條線突破的消息,並指出:
while ((temp->next != NULL) && (temp->next->num < number))
沒有出現在錯誤列表,任何幫助表示讚賞,謝謝!
請[爲什麼不投(http://stackoverflow.com/q/605845/2173917)()''中的malloc C'的'返回值和家庭。 –
此外,總是檢查'malloc()'成功 –
請注意,您無法通過新節點更新到列表的開頭。 – BLUEPIXY