/*计算长度*/
int node_length(nodelink H)
{
int i=0;
if(H ==NULL)
{
puts("length: H do not created!");
return -1;
}
while(H -> next != NULL)
{
H=H->next;
i++;
}
return i;
}
/*排序*/
int node_sort1(nodelink H)
{
int i,j,change=0, length = node_length(H);
nodelink p1,p2,p3,H0;
H0=H;
if (length<2)
{
puts("not need sotr!");
return -1;
}
for(i=0;i < length-1;i++)
{
change=0;
H = H0;
for(j=0;j< length-i-1;j++)
{
if(H->next->data > H->next->next->data)
{
change = 1;
p1= H->next;
p2=H->next->next;
p3=H->next->next->next;
H->next->next->next=p1;//必须先修改3next
H->next->next=p3;
H->next=p2;
}
H = H->next;
}
if (!change)
break;
}
return 0;
}
【c语言】链表节点冒泡排序
最新推荐文章于 2024-02-23 22:17:45 发布