/* 时间:2014.2.2 目的: 题目1181:遍历链表http://ac.jobdu.com/problem.php?pid=1181 */ #include <stdio.h> #include <stdlib.h> #include <malloc.h> int cmp(const void *a,const void *b) { return *(int*)b-*(int*)a; } typedef struct LinkNode{ int data; struct LinkNode *next; }Linknode,*LinkList; int main() { int n,i,a[1000]; while(~scanf("%d", &n)) { for(i=0;i<n;i++) scanf("%d",&a[i]); qsort(a,n,sizeof(int),cmp); Linknode *node; LinkList list; list = (Linknode*)malloc(sizeof(Linknode));//表头 list->data = 888888888; list->next = NULL; for(i=0;i<n;i++) { node = (Linknode*)malloc(sizeof(Linknode)); node->data = a[i]; node->next = list->next; list->next = node; } node = list->next; if(node) printf("%d",node->data); node = node->next; while(node) { printf(" %d",node->data); node = node->next; } printf("\n"); free(list); } return 0; } /* ------------------ 4 思路:1.先快速排序,然后用头插法建立链表,最后输出 4 3 2 1 1 2 3 4 ------------------ */
原文:http://blog.csdn.net/z_x_b5/article/details/18899061