链表排序_想换个方法
程序代码:
typedef struct data DATA_base; DATA_base * list_sort( DATA_base *head ) //排序 { DATA_base *p, *p1, *p2, *temp; int i = 1; temp = ( DATA_base * ) malloc( sizeof(DATA_base) ); temp->next = head; while( i ) { i = 0; p = temp; p1 = p->next; for( p2 = p1->next; p2 != NULL; p2 = p2->next) if( p2->num < p1->num ) { p1->next = p2->next; p->next = p2; p2->next = p1; p = p2; i++; } else { p = p->next; p1 = p1->next; } } head = temp->next; return head; }感觉自己这程序 有隐患。我想换个方法。想半天 有点 哪个大侠帮下。
顺便问下,这样的程序有返回值好些,还是没返回值好。..
[ 本帖最后由 qwermy 于 2012-2-24 23:39 编辑 ]