|
include<stdio.h> DBCLinux联盟 #include<stdlib.h> DBCLinux联盟 typedef struct STRUCT { DBCLinux联盟 int value; DBCLinux联盟 struct STRUCT *next; DBCLinux联盟 }TS; DBCLinux联盟 main() DBCLinux联盟 { DBCLinux联盟 #define N 9 DBCLinux联盟 int a[N],i; DBCLinux联盟 TS *head,*p; DBCLinux联盟 TS *CreateLink(int *,int); DBCLinux联盟 void sort(TS **); DBCLinux联盟 randomize(); DBCLinux联盟 for(i=0;iDBCLinux联盟 a=random(9); DBCLinux联盟 head=CreateLink(a,N); DBCLinux联盟 for(p=head;p;p=p->next) DBCLinux联盟 printf("%-2d",p->value); DBCLinux联盟 putchar('\n'); DBCLinux联盟 sort(&head); DBCLinux联盟 for(p=head;p;p=p->next) DBCLinux联盟 printf("%-2d",p->value); DBCLinux联盟 getchar(); DBCLinux联盟 } DBCLinux联盟 void sort(TS **h) /* 选择排序算法 */ DBCLinux联盟 { DBCLinux联盟 TS *h1,*p,*q,*r,*s; DBCLinux联盟 h1=p=(TS *)malloc(sizeof(TS)); DBCLinux联盟 p->next=*h; DBCLinux联盟 while(p->next) { DBCLinux联盟 q=p->next; DBCLinux联盟 r=p; DBCLinux联盟 while(q->next) { DBCLinux联盟 if(q->next->valuenext->value) DBCLinux联盟 r=q; DBCLinux联盟 q=q->next; DBCLinux联盟 } DBCLinux联盟 if(r!=p) { DBCLinux联盟 s=r->next; DBCLinux联盟 r->next=s->next; DBCLinux联盟 s->next=p->next; DBCLinux联盟 p->next=s; DBCLinux联盟 } DBCLinux联盟 p=p->next; DBCLinux联盟 } DBCLinux联盟 *h=h1->next; DBCLinux联盟 free(h1); DBCLinux联盟 } DBCLinux联盟 TS *CreateLink(int *a,int n) DBCLinux联盟 { DBCLinux联盟 int i; DBCLinux联盟 TS *h,*p; DBCLinux联盟 h=NULL; DBCLinux联盟 for(i=n;i>0;i--) { DBCLinux联盟 p=(TS *)malloc(sizeof(TS)); DBCLinux联盟 p->value=a[i-1]; DBCLinux联盟 p->next=h; DBCLinux联盟 h=p; DBCLinux联盟 } DBCLinux联盟 return h; DBCLinux联盟 }
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|