Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129072
  • 博文数量: 22
  • 博客积分: 1533
  • 博客等级: 上尉
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-30 11:09
文章分类

全部博文(22)

文章存档

2011年(1)

2010年(7)

2008年(14)

我的朋友

分类: C/C++

2008-09-11 21:41:21

下面的是main()函数中的一个子函数,其中的链表数据域为:
typedef struct node
{   char num[10];
    char name[20];
    int score;
    struct node *next;
}node;
以下创建的是有头节点的链表
void sort(node *h)
{
   node *p,*p1,*p2,*p3;
   if(h->next==NULL)   /*当链表为空*/
   {  printf("no node!");
      return;
   }
   p1=h->next->next;
   h->next->next=NULL;
   p3=p1;
   while(p1!=NULL) 
   {
      p=h;
      p2=h->next;
      p3=p3->next;
      while(p2!=NULL)
      {  if(p1->score>p2->score)
         {
            p->next=p1;
            p1->next=p2;
            p1=p3;
            break;
         }
         else
         {
            p=p->next;
            p2=p2->next;
         }
      }
      if(p->next==NULL) 
      {
        p->next=p1;
        p1->next=NULL;
        p1=p3;
      }
  }
}
(注:这是在Windows下运行的.)
阅读(2341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~