单链表插入排序

来源:互联网 发布:蓝色滤镜软件 编辑:程序博客网 时间:2024/06/10 00:23

Insert_Sort(Node*head)功能:单链表的插入排序

 参数描述:
  Node *head: 单链表的首指针

Insert_Sort(Node *head){
   Node *s,       //还未排序节点序列的首结点指针
              *p,       //链表遍历指针
              *pre,   //当前节点的前驱节点指针
              *op;    //本轮待插入节点
 s = head->link;
 head->link = NULL;//拆链操作,将原来的链表头节点改为s, 然后将head的后继节点置为NULL,形成两个新的链表.
 while(s != NULL)
 {
  for(op = s,p = head;p != NULL && p->data < op->data;pre = p,p = p->link);
  s = s->link;
  if(p == head)
   head = op;
  else
   pre->link =op;
  op->link = p;
 }
 } 

原创粉丝点击