<数据结构>单链表元素按插入方法排序实现

typedef struct node
{ 
    int data;  //数据域
    struct node *next;  //指针域 next
}linklist,*link;  
void Insertsort(link L)  //插入排序函数
{
  link p,q,ru;     
  p=L->next;    //p指针指向L的第一个节点
  L->next=NULL;  // 置空链表,然后将原链表中的节点逐个插入有序表中
  while(p!=NULL)  //p工作指针直到原链表末尾
  {
    r=L;    
    q=L->next;  //q指向原链表的节点
    while(q!=NULL&&q->data<=p->data)  //q工作指针直到链表末尾,并且q的数据要<=p的数据
    {
       r=q;      //r指针指向q
       q=q->next;  //q工作指针继续往后移动
    }

  u=p->next;    //u指针指向待插入的节点
  p->next=r->next;  //然后将p连接到有序表中
  r->next=p;   //连接p到有序表中
  p=u;  //p工作指针指向u
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值