C语言 链表排序
Posted 菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 链表排序相关的知识,希望对你有一定的参考价值。
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语言 链表排序的主要内容,如果未能解决你的问题,请参考以下文章