我想写插入数字(从用户)功能的节点(每个节点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