15.给链表中的数据排序
来源:互联网 发布:淘宝照相技巧 编辑:程序博客网 时间:2024/06/05 12:43
给定程序中,函数fun的功能是将带头节点的单向链表节点数据中的数据从小到大排序,即若原链表节点数据从头至尾的数据为:10、4、8、6,排序后链表节点数据从头至尾的数据为:2,、4、6、8、10.
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define N 6typedef struct node{int data;struct node *next;}NODE;void fun(NODE *h){NODE *p, *q;int t;p = h->next;while (p){q = p->next;while (q){if (p->data > q->data){t = p->data;p->data = q->data;q->data = t;}q = q->next;}p = p->next;}}NODE *creatlist(int a[]){NODE *h, *p, *q;int i;h = (NODE *)malloc(sizeof(NODE));h->next = NULL;p = NULL;for (i = 0;i < N;i++){q = (NODE*)malloc(sizeof(NODE));q->data = a[i];q->next = NULL;if (h->next == NULL)h->next = p = q;else{p->next = q;p = q;}}return h;}void outlist(NODE *h){NODE *p;p = h->next;if (p == NULL)printf("The list is NULL!\n");else{printf("\nHead ");do{printf("->%d", p->data);p = p->next;} while (p != NULL);printf("->End\n");}}int main(){NODE *head;int a[N] = { 0,10,2,4,8,6 };head = creatlist(a);printf("\nThe original list:\n");outlist(head);fun(head);printf("\nThe list after sorting:\n");outlist(head);getchar();return 0;}
0 0
- 15.给链表中的数据排序
- 给数据库中的表造数据
- 给链表选择排序
- 给java 中的List排序
- 给java 中的List排序
- 对链表中的某一项数据进行排序
- 集合中的数据排序
- sqlserver数据导入mysql:给sqlserver中的表创建索引
- Berkeley DB 使用SecondKey给数据排序
- 用冒泡法给四个数据排序
- 给java中的List进行排序
- Java中的Collections用来给集合排序
- 给list中的集合进行倒叙排序
- 对NSDictionary 中的数据排序
- NSArray中的数据进行排序
- 对vector中的数据排序
- ArrayList中的数据排序问题
- ArrayList中的数据排序--java对象排序
- 分布式系统中保证数据的正确性(插入与更新)
- MySQL查询时区分大小写的方法
- JS 面向对象版 贪吃蛇
- 以静态网页为原型制作dede动态模板
- hbase命令
- 15.给链表中的数据排序
- 理解linux文件系统VFS
- tomcat环境配置
- PHP学习笔记(一):开发微信平台
- C++内存管理
- webStorm的注册码
- scala之尾递归实际用处1
- android:android Intent and IntentFilter
- python之花瓣美女下载