//排序
void sort(dlist_t head)
{
dlist_t tmp = head->next,p = NULL,q = NULL;
//将链表置空
head->next = head;
head->prev = head;
while(tmp!=head){
//保存原链表中tmp的下一个节点
q = tmp->next;
//找到tmp插入的位置
for(p=head->prev;p!=head&&p->data>tmp->data;p=p->prev);
//将tmp插入到p之后
tmp->prev = p;
tmp->next = p->next;
p->next->prev = tmp;
p->next = tmp;
//将tmp指向要插入的下一个节点
tmp = q;
}
}
双向循环链表的排序
猜你喜欢
转载自blog.csdn.net/RwinR/article/details/82805705
今日推荐
周排行