在链表中,如果想要对节点以冒泡的方式进行处理是很困难的,起码也是很罗嗦的
那么换一种角度,还是冒泡的方法,但这次并不尝到试对节点进行移动,而只是交换节点的值,那么复杂程度会大大降低,如下所示:
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;
}
|
阅读(577) | 评论(0) | 转发(0) |