采用单链表进行冒泡排序
2015-03-27 20:21
211 查看
#include <stdio.h> #include <stdlib.h> typedef struct Node{ struct Node *next; int num; }Node; void bubble_sort(Node* head) { Node* tail = NULL; while(tail != head->next) { Node* pre = head; Node* cur = pre->next; while(cur != tail && cur->next != tail) { if( cur->num > cur->next->num ) { //交换当前节点和后一个节点 pre->next = cur->next; cur->next = cur->next->next; pre->next->next = cur; } pre = pre->next; cur = pre->next; } tail = cur; } } void main() { int num; Node *head; Node *pre,*p; head = (Node *)malloc(sizeof(Node)); pre = head; printf("输入整型数据,以字母q(Q)结尾\n"); while(scanf("%d",&num)!=NULL&& (num !=(int)'q' || num!='Q')) { p = (Node *)malloc(sizeof(Node)); p->num=num; pre->next = p; pre = p; } p->next=NULL; bubble_sort(head); }
相关文章推荐
- 采用冒泡法对一维数组中的数据按升序进行排序。
- 采用选择排序法对链表进行排序,注意交换操作中不是对链表里某一节点里的某一元素进行交换,而是对两节点指针的交换
- 链表排序(冒泡、归并)
- 单向链表:在插入值的同时要进行排序
- 线性表的顺序表 实现,及应用-----西文排序+前m个元素和后n个元素进行整体互换+构造纯集合+有序表求纯集合+循环有序链表表示两集合的并集
- 对链表进行归并排序
- c 排序采用递归冒泡法
- 单向链表排序(冒泡)
- 对数组进行排序、求最大值和求元素和的算法都编写为函数模板,采用相关数据进行测试。
- C#冒泡法对数组进行排序
- 用归并排序对链表进行排序
- 用冒泡的方式对数组进行排序, 并写出对应的优化后的代码实现。(重点写思路、原理)
- 用C语言编写一个双链表,每个结点存储学生的编号以及姓名,遍历这个双链表,并将学号按照从小到大进行排序
- 用双向链表对字符串进行排序
- 对链表进行排序 搜狗2012笔试
- 对单链表进行 删除、插入、排序 等操作。
- 用双向链表对整形数据进行排序
- 单链表排序--冒泡法
- 对链表进行排序
- 编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。