实现将一个单链升序和一个单链降序合并为单链升序的算法。 数据结构的

 我来答
百度网友fb4c2f3
2015-06-26 · TA获得超过435个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:176万
展开全部

      具体代码就不给出了,只是你要理解这个过和与思想就行了,升序与降序再合并为一个升序, 假设升序链A,降序链B,合并链为C。

        那么要求C链也是升序的,那也就是从小到大排序。所以每次从A的前端,B的尾端(因为是单链的话,可以对B先进行反转,便于操作)进行比较,选出一个最小的值,插入到C链中,不断循环这个过程,直至全部插入为止。

    过程如下:

//为了便于操作,可以先行对B降链进行反转,使其变成升序的单链
   ..对B链进行反转
   
   while( A链非空 && B链非空 )
   {
       //比较A链中第一个与B链第一个的大小(因为对B进行了反转,又根据两者均为升序,所以在A链或是B链中,最小值均为第一个。
      Node& min = MIN( A->head.value , B->head.value );
      
      //插入到C链中
      C.next = min;
      
      //移动,如果取的是A中第一个,则移动A,取的是B链中的第一个,则移动B
      ..
   }
   
   //当跳出循环后,说明有一条链已经插入结束,可以对剩下的那一条链直接插入就可以了
   if( A为空 )
   {
     //说明B链还没有插入完
     将B链插入到C中
    }
    else
    {
         //将A中剩余的值插入C中   
         while( A非空 )
         {
             将A插入C,A移动,C移动
         }
    }
    
    
    //此时完成了合并操作
百度网友c253636
2015-06-25
知道答主
回答量:21
采纳率:100%
帮助的人:6.4万
展开全部
这个也可以?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式