数据结构问题????

 

s->next=a->next;

a->next=s;

s.next = p->next;

p->next = s;

node * insert(node * head, int x)
{
     node * last, * current, * p;
     //要插入的结点
     p = (node *)malloc(sizeof(node));
     p->num = x;
     //空表插入
     if(head == NULL)
     {
         head = p;
         p->next = NULL;
         return head;
     }
     //找插入位置
     current = head;
     while(x > current->num && current->next != NULL)
     {
          last = current;
          current = current->next;
     }
     if(x <= current->num)
     {
         if(head == current)//在第一结点之前插入
         {
             p->next = head;
             head = p;
             return head;
         }
         else//中间位置插入
         {
             p->next = current;
             last->next = p;
             return head;
         }
     }
     else//链尾插入
     {
         current->next = p;
         p->next = NULL;
         return head;
     }
}