1、头部插入

STU* insert_link(STU *head, STU tmp)
{
STU *pi = (STU *)calloc(1,sizeof(STU));
if(pi == NULL)
{
perror("calloc");
return head;
}
*pi = tmp;
pi->next = NULL;
if(head == NULL)
{
head = pi;
}
else
{
pi->next = head;
head = pi;
}
return head;
}
2、尾部插入

STU* insert_link(STU *head, STU tmp)
{
STU *pi = (STU *)calloc(1,sizeof(STU));
if(pi == NULL)
{
perror(calloc);
return head;
}
*pi = tmp;
pi->next = NULL;
if(head == NULL)
{
head = pi;
return head;
}
else
{
STU *pb = head;
while(pb->next != NULL)
pb = pb->next;
pb->next = pi;
return head;
}
return head;
}
3、有序插入(从小->大):

STU* insert_link(STU *head, STU tmp)
{
STU *pi = (STU *)calloc(1,sizeof(STU));
if(pi == NULL)
{
perror("calloc");
return head;
}
*pi = tmp;
pi->next = NULL;
if(head == NULL)
{
head = pi;
return head;
}
else
{
STU *pb = head, *pf = head;
while(pb->num < pi->num && pb->next != NULL)
{
pf = pb;
pb = pb->next;
}
if(pb->num >= pi->num)
{
if(pb == head)
{
pi->next = head;
head = pi;
return head;
}
else
{
pf->next = pi;
pi->next = pb;
return head;
}
}
else
{
pb->next = pi;
return head;
}
}
return head;
}