| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:单链表排序,希望牛人给看看啊,怎么不能得出正确结果啊
只看楼主 加入收藏
forteck
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
单链表排序,希望牛人给看看啊,怎么不能得出正确结果啊
struct shares *sort(struct shares **h) /* 选择排序算法 */
{
   struct shares *p,*q,*r,*s;
   p=q=(struct shares *)malloc(LEN);
   p=*h;
      while(p->next)
      {
         r=p;
         q=p->next;
         for(;q->next;q=q->next)
         {
             if(q->next->num>q->num) r=q;
                 if(p!=r)
                 {
                  s=r;
                  r=p;
                  p=s;
                 }
         }
          p=p->next;
      }
      p->next=NULL;
   return(p);
}
搜索更多相关主题的帖子: 单链 结果 
2009-09-04 10:56
romance_hot
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2009-9-12
收藏
得分:20 
单链表的排序不建议你这么排序,直接做插入排序就行了,你在申请节点的时候,就要考虑到插入到中间的位置 或者最后的位置,这样的执行效率高
void insert_func(void)
{
 char s_temp[4];
 ptr=(struct student*)malloc(sizeof(struct student));
 printf("Student name:");
 gets(ptr->name);
 printf("Student score:");
 gets(s_temp);
 ptr->score=atoi(s_temp);
 sort_func();
}
 
void sort_func(void)
{
 prev=head;
 thiss=head->next;
 while ((thiss!=NULL) && (thiss->score>ptr->score))
 {
  prev=thiss;
  thiss=thiss->next;
 }
 ptr->next=thiss;
 prev->next=ptr;
}
 
void delete_func(void)
{
 char del_name[20];
 printf("Delete student name:");
 gets(del_name);
 
 prev=head;
 thiss=head->next;
 while ((thiss!=NULL) && (strcmp(thiss->name,del_name)!=0))
 {
  prev=thiss;
  thiss=thiss->next;
 }
 if (thiss!=NULL)
 {
  prev->next=thiss->next;
  free(thiss);
  printf("%s student record deleted\n",del_name);
 }
 else
 {
  printf("Student %s not found\n",del_name);
 }
 anykey_func();
}
 
2009-09-12 11:36
mzp05302
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-8
收藏
得分:0 
如果链表已经创建好,排序时可以将各结点元素存到数组里,对数组排序的操作比较方便,然后在回存到链表。
2009-10-08 16:23
快速回复:单链表排序,希望牛人给看看啊,怎么不能得出正确结果啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019479 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved