有序链表的合并--一个算法分享

算法中类的实现请见:http://my.oschina.net/u/181847/blog/42593

//有序链表合并
//方案如下:每次去除listSecond中的第一个节点,把这个节点插入到
//listFirst中相应的位置 ,当插入完毕后删除这个节点,然后进行下一轮
//插值,如此循环,知道listSecond为空
//创建两个链表并初始化
List<int>listFirst;
List<int>listSecond;
listFirst.AddTail(1);
listFirst.AddTail(3);
listFirst.AddTail(5);
listFirst.AddTail(8);
listFirst.AddTail(10);
listSecond.AddTail(0);
listSecond.AddTail(3);
listSecond.AddTail(4);
listSecond.AddTail(6);
listSecond.AddTail(11);
listSecond.AddTail(18);


while(listSecond.GetCount()!=0){
 int indexFirst=0;
 while(listSecond.GetAt(0)>listFirst.GetAt(indexFirst)){
      ++indexFirst;
      if(indexFirst==listFirst.GetCount()){
           break;
           }          
           }       
        if(indexFirst==listFirst.GetCount()){
         listFirst.AddTail(listSecond.GetAt(0));
         listSecond.RemoveAt(0);        
        }
        else{
           listFirst.InsertAt(indexFirst,listSecond.GetAt(0));
           listSecond.RemoveAt(0);
           }
      }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值