printf("\ninsert number:\n");
scanf("%d",&number);
Node *n=(Node*)malloc(sizeof(Node));
n->data=number;
pre=head;
p=head->next;
while(p!=NULL)
{
if(n->data<pre->data)
head->next=n;
if((n->data<=p->data)&&(n->data>=pre->data))
{
pre->next=n;
n->next=p;
}
else
{
pre=p;
p=p->next;
}
}
供参考:
void insert(Node*& head)
{
int number;
Node* pre, * p;
printf("\ninsert number:\n");
scanf("%d", &number);
Node* n = (Node*)malloc(sizeof(Node));
n->data = number;
n->next = NULL;
pre = head;
p = head->next;
while (p != NULL)
{
if (n->data <= p->data)
{
n->next = pre->next;
pre->next = n;
break;
}
pre = p;
p = p->next;
}
}
if(n->datadata)
head->next=n;