链表的冒泡排序
来源:互联网 发布:mac版qq群文件 编辑:程序博客网 时间:2024/05/01 20:16
//Filename:BubleSort.cpp//Writed by CaoLichen//冒泡排序练习,数据以链表的结构存储#include<stdio.h>#include<stdlib.h>//结点结构类型typedef struct LNode{int data;struct LNode *next;//指向后继结点}SLink;//建立线性表,void CreateLink(SLink *head,int n){SLink *tmp;for(; n > 0; n--){tmp = (SLink *)malloc(sizeof(SLink));printf("请输入数据:");scanf("%d",&tmp->data);tmp->next = head->next;//头插法,逆序排放head->next = tmp;}printf("建立线性表成功!\n");}//冒泡排序,从大到小排序,计数器countvoid BubleSort(SLink *head){int count = 0;//计数器,初始为0int swap;SLink *tmp;while(1){count = 0;//泡泡计数器归零tmp = head->next;while(tmp->next != NULL){if(tmp->data < tmp->next->data){swap = tmp->data;tmp->data = tmp->next->data;tmp->next->data = swap;count ++;//完成一次冒泡}tmp = tmp->next;//前进一下}if(count == 0){break;}}printf("排序成功!\n");}//打印线性表void PrintLink(SLink *head){head = head->next;while(head != NULL){printf("%d\n",head->data);head = head->next;}printf("打印线性表成功!\n");}int main(){SLink *head;//头结点及其初始化head = NULL;head = (SLink *)malloc(sizeof(SLink));head->next = NULL;int n;printf("请输入数据量:");scanf("%d",&n);CreateLink(head,n);//建立线性表,存放需要排序的数据PrintLink(head);//打印线性表BubleSort(head);//冒泡排序,从大到小PrintLink(head);//打印线性表return 0;}
0 0
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序。
- 链表的冒泡排序
- 链表的排序(冒泡)
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的冒泡排序
- 链表的一种排序---冒泡排序
- 链表冒泡排序
- 链表冒泡排序
- C#双向链表的冒泡排序
- 递归实现链表的冒泡排序。
- 阿里8.29,研发笔试题中的两个附加题
- 正则表达式第二篇
- Android.mk中设置PROPERTIES属性
- Android:滑动菜单栏(二)开源项目SlidingMenu的示例
- STL array的size方法(18)
- 链表的冒泡排序
- 二叉树基本操作的程序实现
- 单向链表操作
- C++之练习题41
- mysql日期选择函数
- Android:滑动菜单栏(三)SlidingMenu动画效果的实现
- 点滴的积累---J2SE学习小结
- IntelliJ IDEA设置调试模式的Variables和Watches窗口的变量为Object模式
- 有多个broker的例子