LALA  
日历
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

留言簿(1)

随笔分类(31)

文章分类(4)

收藏夹(21)

搜索

  •  

积分与排名

  • 积分 - 29318
  • 排名 - 1400

最新随笔

最新评论

阅读排行榜

 
 1 typedef struct Node{
 2     int data;
 3     struct Node* next;
 4 }Node, *LinkList;
 5 void Merge(LinkList la, LinkList lb, LinkList &lc)
 6 {
 7     // NULL检测
 8     if(!la) {lc = pb; return;}
 9     if(!lb) {lc = pa; return;}
10     Node* p;
11     
12     // 确定最大值在la上, 还是lb上
13     if(la.data > lb.data) { lc = p = la; la = la->next; }
14     else { lc = p = lb; lb = lb->next; }
15     
16     while(la &&lb)
17     {
18         if(la.data > lb.data)
19         {
20             p->next = la;
21             la = la->next;
22         }else if(la.data < lb.data)
23         {
24             p->next = lb;
25             lb = lb->next;
26         }else// la 与 lb中值相等的情况
27             p->next = la;
28             la = la->next;
29             Node* tmp = lb;
30             lb = lb->next;
31             free(tmp);
32         }
33         p = p->next;
34     }
35     // 剩余部分链表的挂接
36     p->next = (la ? la:lb);
37 }
posted on 2009-06-21 12:02 Dest 阅读(717) 评论(0)  编辑  收藏 所属分类: C语言算法
 
Copyright © Dest Powered by: 博客园 模板提供:沪江博客