码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 链表排序

时间:2016-06-26 00:37:20      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <assert.h>
 4 
 5 typedef struct node{
 6     int data;      // 存放数据
 7     struct node* next; // 下一节点
 8 }ListNode;
 9 
10 extern int CSort();
11 
12 ListNode *root = NULL;//
13 
14 int main(int argc, char* argv[]){
15     int a[] = { 2, 4, 3, 59, 45, 32, 22};// 排列数据内容
16     ListNode *node = NULL;
17     ListNode *tmp = NULL;
18     int i = 0 ;
19 
20     root = (ListNode *)malloc(sizeof(ListNode)); 
21 
22     node = root;
23     for(i=0; i< sizeof a / sizeof(int);  ++i){
24         printf("a in %d\n", a[i]);
25         tmp = (ListNode *)malloc(sizeof(ListNode)); 
26         tmp->data = a[i];
27         node->next = tmp;
28         node = tmp;
29     }
30     tmp->next = NULL; // 
31 
32 
33     CSort();
34 
35     node = root->next;
36     while(node){
37         printf("node->data  %d\n", node->data);
38         node = node->next;// 
39     }
40 
41     return 0; // 
42 }
43 
44 int CSort(){
45     ListNode *p = root->next;
46     ListNode *p_pre = p->next;
47     int change_value = 0;
48     
49     assert(root); // 
50 
51     while(p){
52         p_pre = p->next;
53         while(p_pre){
54             if(p->data <= p_pre->data){
55                 ;
56             }else{
57                 change_value = p->data;
58                 p->data = p_pre->data;
59                 p_pre->data = change_value;
60             }
61             p_pre = p_pre->next;
62         }
63         p = p->next;
64     }
65 }

  链表排序

        要求,将a数组内数据按照从小到大顺序排序,由 CSort() 函数实现;

C语言 链表排序

标签:

原文地址:http://www.cnblogs.com/vagabond/p/5617125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!