正文

顺序链表的简单选择排序2006-06-25 07:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/tld5yj/16169.html

分享到:

#include<stdio.h>
#define N 10
typedef struct Seq
{int data;
 struct Seq *next;
}Seq,*Sq;

Sq create()
{Sq L,p;
 int i;
 L=(Sq)malloc(sizeof(Seq));
 L->next=NULL;
 for(i=N;i>0;i--)
 {p=(Sq)malloc(sizeof(Seq));
  scanf("%d",&p->data);
  p->next=L->next;
  L->next=p;
 }
 return(L);
}

int minkey(Sq L)
{Sq p,q;
 int n;
 p=L->next;
 n=p->data;
 for(;p!=NULL;p=p->next)
 {if(p->data<n)
  n=p->data;
 }
 return(n);
}

void selectsort(Sq L)
{Sq p,q,s;
 for(p=L;p->next!=NULL;p=p->next)
 {for(q=p->next;q!=NULL;q=q->next)
  {s=q->next;
   if(s->data==minkey(p))
   {q->next=s->next;
    s->next=p->next;
    p->next=s;
   }
  }
 }
}

void main()
{Sq L,p;
 L=create();
 selectsort(L);
 for(p=L->next;p!=NULL;p=p->next)
 printf("%d ",p->data);
 getch();
}

 

阅读(3415) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册