链表实现冒泡排序
2012-07-19 21:28
106 查看
#include"stdio.h" #include"stdlib.h" typedefstructnode { intnum; structnode*next; }node; node*head=NULL; node*last=NULL; voidprint() { node*p=head; while(p!=NULL) { printf("%d",p->num); p=p->next; } printf("\n"); } voidcreate() { intn=6; node*p; while(n) { p=(node*)malloc(sizeof(node)); p->num=rand()%50+1; if(head==NULL) { head=p; last=p; } else { last->next=p; last=p; } last->next=NULL; n--; } } voidsort() { node*p,*q,*front; inti,j,flag; if(head==NULL||head->next==NULL) { return; } for(i=0;i<6;i++) { p=head; front=NULL; q=p->next; flag=0; for(j=0;j<6-i-1;j++) { if(p->num>q->num) { flag++; if(front==NULL) { p->next=q->next; q->next=p; head=q; } else { p->next=q->next; q->next=p; front->next=q; } front=q; q=p->next; } else { front=p; p=q; q=p->next; } } if(flag==0) { break; } } } intmain() { printf("正在产生随机数\n"); create(); printf("排序前:\n"); print(); sort(); printf("排序后:\n"); print(); return0; }
相关文章推荐
- 冒泡排序-----数组/链表实现
- 经典算法学习——链表实现冒泡排序
- 递归实现链表的冒泡排序。
- 冒泡排序的链表实现
- 冒泡排序(链表实现)
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 冒泡排序的链表实现
- 用链表实现冒泡排序!
- 基于无头节点的单链表的升序冒泡排序(C++实现)
- 双向链表操作(逆置三种实现以及 冒泡排序 )
- 带有头指针的链表的 创建 输出 查找 删除 释放 排序(冒泡排序)功能实现(尾插法(自动记录最后一个节点))
- 单链表实现冒泡排序
- Python 实现通过指针实现链表翻转,链表奇偶下标交换,链表的冒泡排序
- 单链表实现一个冒泡排序
- 链表实现冒泡排序
- 链表实现冒泡排序
- 16.单向链表的一些基本操作实现(链表反转,链表有环无环判断,链表冒泡排序,链表快速排序)
- 数据结构 排序(冒泡排序改进,简单选择排序链表实现)
- 伪冒泡排序------数组/链表实现
- 冒泡排序(链表实现)