注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Aspirer's blog

停止维护,新博客地址:http://aspirer.wang/

 
 
 

日志

 
 

链表排序  

2009-08-25 11:04:25|  分类: 学习心得 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

链表排序 - aspirer - Aspirers blog

Node *sort_list_increasing_order(Node *list)
{
 int temp;
 Node *p1;
 Node *p2;
 Node *p3;
 if (list == NULL)
 {
  return NULL;
 }
 for (p1 = list; p1; p1 = p1->next)
 {
  p3 = p1;
  for (p2 = p1->next; p2; p2 = p2->next)
  {
   if (p3->data > p2->data)
   {
    p3= p2;
   }
  }
  if (p3 != p1)
  {
   temp = p1->data;
   p1->data = p3->data;
   p3->data = temp;
  }
 }
 return list;
}


Node *sort_list_increasing_order(Node **list)
{
 Node *prev1, *prev2;
 Node *next1, *next2;
 Node *p1, *p2, *temp;

 for (p1 = *list, prev1 = p1; p1->next; prev1 = p1, p1 = p1->next)
 {  
  temp = p1;
  for (p2 = p1; p2->next; p2 = p2->next)
  {
   if (temp->data > p2->next->data)
   {
    prev2 = p2;
    temp = p2->next;
   }
  }
  if (temp != p1)
  {
   if (p1 == *list)  //若p1为链表头
   {    
    next1 = p1->next;
    next2 = temp->next;
    p1->next = next2;
    prev2->next = p1;
    temp->next = next1;
    *list = temp;
    p1 = temp;
   }
   else if (p1->next == temp) //若两个节点相邻
   {
    next1 = p1->next;
    next2 = temp->next;
    prev1->next = temp;
    temp->next = p1;
    p1->next = next2;
    p1 = temp;
   }
   else
   {    
    next1 = p1->next;
    next2 = temp->next;
    prev1->next = temp;
    temp->next = next1;
    prev2->next = p1;
    p1->next = next2;
    p1 = temp;
   }
  }
 }
 return *list;
}

  评论这张
 
阅读(561)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018