C語言鏈表的創建與排序


include<stdio.h> 
#include<stdlib.h> 
typedef struct STRUCT { 
int value; 
struct STRUCT *next; 
}TS; 
main() 
{ 
#define N 9 
int a[N],i; 
TS *head,*p; 
TS *CreateLink(int *,int); 
void sort(TS **); 
randomize(); 
for(i=0;i a=random(9); 
head=CreateLink(a,N); 
for(p=head;p;p=p->next) 
printf("%-2d",p->value); 
putchar('\n'); 
sort(&head); 
for(p=head;p;p=p->next) 
printf("%-2d",p->value); 
getchar(); 
} 
void sort(TS **h) /* 選擇排序算法 */ 
{ 
TS *h1,*p,*q,*r,*s; 
h1=p=(TS *)malloc(sizeof(TS)); 
p->next=*h; 
while(p->next) { 
q=p->next; 
r=p; 
while(q->next) { 
if(q->next->valuenext->value) 
r=q; 
q=q->next; 
} 
if(r!=p) { 
s=r->next; 
r->next=s->next; 
s->next=p->next; 
p->next=s; 
} 
p=p->next; 
} 
*h=h1->next; 
free(h1); 
} 
TS *CreateLink(int *a,int n) 
{ 
int i; 
TS *h,*p; 
h=NULL; 
for(i=n;i>0;i--) { 
p=(TS *)malloc(sizeof(TS)); 
p->value=a[i-1]; 
p->next=h; 
h=p; 
} 
return h; 
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM