链表排序(C语言)选择排序
来源:互联网 发布:java findtask的功能 编辑:程序博客网 时间:2024/06/07 00:04
#include <stdio.h>#include <stdlib.h>#include <time.h> //用到了time函数#define arraySize 10typedef int elemType;typedef struct List{ elemType elem; struct List *next;}Node;//产生随机数组void createRandomArray(int array[]){ int i,number; srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样 for (i=0; i<arraySize; i++) { array[i] = rand() % 101; //产生0-100的随机数 }}//创建单链表struct List *createList(int num,int arrayList[]){ Node *head,*p1,*p2; if((head=(Node*)malloc(sizeof(Node)))==NULL) { printf("create error\r\n"); exit(0); } head->elem=0; head->next=NULL; p1=head; int i; for(i=0;i<num;i++) { if((p2=(Node*)malloc(sizeof(Node)))==NULL) { printf("create error\r\n"); exit(0); } p2->elem=arrayList[i]; p2->next=NULL; p1->next=p2; p1=p2; } return head;}//遍历单链表void displayList(Node *head){ printf("遍历链表:"); Node *p1; if(head==NULL) { printf("空链表\r\n"); //exit(0); } else { for(p1=head->next;p1!=NULL;p1=p1->next) { printf("%d\t",p1->elem); } printf("\r\n"); }}//判断链表是否为空bool isEmptyList(Node* head){ return head==NULL;//||head->next==NULL;}//链表排序 从小到大排 选择排序void sortList(Node* head){ printf("------进行排序------\r\n"); Node *p1,*p2,*p3,*temp; if((temp=(Node*)malloc(sizeof(Node)))==NULL) { printf("sort create error"); } p1=head; //int i=0,j=0;//调试 for(p2=p1->next;p2->next!=NULL;p2=p2->next) {for(p3=p2->next;p2!=NULL;p3=p3->next) { if(p2->elem>p3->elem) { temp->elem=p3->elem; p3->elem=p2->elem; p2->elem=temp->elem; }//i++;// printf("i:%d\t",i);if(p3->next==NULL)break; }//j++;// printf("j:%d\t",j);}}int main(){ Node *head; elemType temp; int arrayList[arraySize]; createRandomArray(arrayList); head=createList(arraySize,arrayList); printf("排序前\r\n"); displayList(head); sortList(head); printf("排序后\r\n"); displayList(head); return 0;}
0 0
- 链表排序(C语言)选择排序
- 选择排序(C语言)
- C语言选择排序
- c语言选择排序
- c语言选择排序
- C语言---选择排序
- C语言 选择排序
- c语言选择排序
- 【C语言】选择排序
- C语言:选择排序
- C语言 选择排序
- C语言选择排序
- c语言选择排序
- C语言------选择排序
- 选择排序(C语言)
- C语言选择排序
- C语言使用链表的插入排序、选择排序、快速排序
- 简单选择排序(C语言实现)
- 阶层
- 【leetCode】Maximum Depth of Binary Tree
- codeforces(567C)-- Geometric Progression
- linux在rpm安装时报错error:Failed dependencies
- 南邮 OJ 1858 A. 智能飞弹
- 链表排序(C语言)选择排序
- JavaScript Switch语句
- 图的深度遍历
- cocache.jar
- 导入数据到mysql的一种简单的方法
- JavaScript数组和对象
- [iOS]AVAudioSession中的 setCategory: withOptions 的参数详解
- JavaScript:验证输入
- 易序卦와 日月生成