首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编纂一个函数,把给定链表的数据项中最大的数放在最后一位

2013-08-01 
编写一个函数,把给定链表的数据项中最大的数放在最后一位{link u ,pre,maxu t-nextpre tmax uw

编写一个函数,把给定链表的数据项中最大的数放在最后一位
{
    link u ,pre,max;
    u = t->next;
    pre = t;
    max = u;
    while(u->next != NULL)
    {
        if(u->next->item > max->item)
        {
            max = u->next;
            pre = u;
            
        }
        u = u->next;
    }
    if(max != t->next)
    {
        pre->next = max->next;
        max->next = t->next;
        t->next = max;
    }

}
大神们指导下,新手,这个函数是把最大的放在第一个,怎么把最大的放在最后啊,求修改后的代码
[解决办法]

{
    link u ,pre,max;
    u = t->next;
    pre = t;
    max = u;
    while(u->next != NULL)
    {
        if(u->next->item > max->item)
        {
            max = u->next;
            pre = u;
            
        }
        u = u->next;
    }
//while循环找出最大的元素

//将最大的元素放到最后
  //找到链表的尾 ,从你的声明可以看出t应为头指针

link temp=t;
while(temp->next!=NULL)


temp=temp->next;
//其实没必要将max移到队尾,将max和temp的值互换一下也可以啊
if(temp!=max)
{
ElementType   var=temp->item;     //ElementType为结点中数据的类型
temp->item=max->item;
max->item=var;
}

//你当然也将max移到队尾
    if(max != t->next)
    {
       pre->next=max->next;
       temp->next=max;
      max->next=NULL;
    }

}

热点排行