链表排序
来源:互联网 发布:梦想小镇辅助mac 编辑:程序博客网 时间:2024/05/22 13:18
将一个链表中的元素按照从小到大的顺序进行排序
#include <stdio.h>#include <iostream>using namespace std;//定义结构体类型Ptypedef struct point{int data;struct point *next;//指向结构体的指针}P;//创建链表(指定长度,存在结构体数组中),返回头指针P *createlink(P a[],int n){P *head=&a[0];for(int i=0;i<n-1;i++){a[i].next=&a[i+1];}a[n-1].next=NULL;return head;}//链表输出void output(P *head){P *ph=head;while(ph!=NULL){cout<<ph->data<<'\t';ph=ph->next;}}//链表排序void sortlink(P *head){P *p1=NULL;P *p2=head;bool flag;while(1){p1=NULL;p2=head;flag=false;while(p2){p1=p2;p2=p2->next;if(p2 && p2->data < p1->data){flag=true;int t;t=p2->data;p2->data=p1->data;p1->data=t;}}if(flag==false) break;}}int main(){P a[8]={{10},{1},{12},{15},{6},{9},{4},{0}},*head;head=createlink(a,8);printf("未排序的链表数据如下:\n");output(head);printf("\n====================\n");sortlink(head);printf("排序后的链表数据如下:\n");output(head);cout<<endl;system("pause");return 0;}
输出结果显示:
0 0
- 链表排序 归并排序
- 链表排序--选择排序
- 链表排序--快速排序
- 链表排序--归并排序
- 排序3:插入排序(普通插入排序 + 折半插入排序 + 链表插入排序 + 希尔排序)
- LIST排序, Struct排序, qsort排序, STL::LIST sort排序, 链表排序
- 单向链表排序:快速排序和归并排序
- 单向链表排序-归并排序
- 链表排序,使用插入排序,
- 链表排序-直接插入排序
- 链表的一种排序---冒泡排序
- c 链表排序 - 选择排序
- 链表排序之插入排序
- 插入排序进行链表排序
- 优化冒泡排序 & 链表选择排序
- 链表排序之选择排序
- 链表排序之冒泡排序
- 链表排序(归并排序)
- 推荐!手把手教你使用Git
- jar打包成exe,或者服务进行运行
- 重新发现物理之美(二)
- 杭电1010——Tempter of the Bone(DFS、剪枝)
- java 实现多线程的三种基本方式
- 链表排序
- MDK输出map文件分析
- Unity3D中自带事件函数的执行顺序
- jquery懒加载图片的插件 jquery懒加载图片的插件
- android studio 导入eclipse遇到的相关问题
- 数据结构学习之顺序表(一)
- 将dataview中数据导出到Excel
- C函数手册
- ionic学习之建立一个ionic项目