Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66615
  • 博文数量: 30
  • 博客积分: 1260
  • 博客等级: 中尉
  • 技术积分: 285
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-03 12:27
文章分类

全部博文(30)

文章存档

2010年(30)

我的朋友

分类: LINUX

2010-06-25 17:56:01

在链表中,如果想要对节点以冒泡的方式进行处理是很困难的,起码也是很罗嗦的

那么换一种角度,还是冒泡的方法,但这次并不尝到试对节点进行移动,而只是交换节点的值,那么复杂程度会大大降低,如下所示:
 

struct abc *sort(struct abc *head)
{
    struct abc *p1, *p2;
    int m;
    for(p1 = head; p1; p1 = p1->next)
    {
        for(p2 = head; p2->next; p2=p2->next)
        {
            if(p1 == p2)
            continue;
            if(p1->a > p2->a)
            {
                m = p1->a;
                p1->a = p2->a;
                p2->a = m;
            }
        }
    }
    return head;
}


阅读(551) | 评论(0) | 转发(0) |
0

上一篇:execve MAN Page

下一篇:Linux管道及有名管道

给主人留下些什么吧!~~