C语言链表的创建与排序

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航