链表排序求解
如何用简便的方法进行链表排序??请举例,谢谢!
[解决办法]
表指,
用qsort排序,
然後原
就好像
struct list_head {
struct list_head *next, *prev;
void *data ;
};
void list_qsort(struct list_head *head, compar comp)
{
void **list ,**p;
struct list_head *pos;
int count = list_count(head) ;
if ( (p=list = (void **) malloc(sizeof(void*) * count))==NULL)
{
return ;
}
list_for_each(head, pos){
*p++ = pos-> data ;
}
qsort(list, count, sizeof(void *), comp);
p=list ;
list_for_each(head, pos){
pos-> data = *p++ ;
}
free(list);
}