首页 新闻 会员 周边

合并链表(La = pre和pre = La)

0
悬赏园豆:50 [已解决问题] 解决于 2012-11-30 19:16

我是想把Lb中的数据归并到La中,有相同的则不归并,Lb链表在算法中不允许破坏

 

void unionx(linkList &La,linkList Lb)
{
 linkList pa,pb,pre;
 pre = (linkList)malloc(sizeof(node));
 pa = La;
 pb = Lb;
 La=pre;         
// pre = La;
 while(pa && pb)
 if(pa -> data < pb -> data)
 {
  pre -> next = pa;
  pre = pa;
  pa = pa -> next;
 }
 else if(pa -> data > pb -> data)
 {
  pre->next=pb;
  pre=pb;
  pb=pb->next;
 }
 else
 {
  pre -> next = pa;
  pre = pa;
  pa = pa -> next;
  pb = pb -> next;
 }
 pre -> next = pa?pa:pb;
}

 

问题:其中La = pre和pre = La(程序改成这个就运行不出结果),我不懂这步的操作到底是要进行什么,是什么意思。

wust.zjf的主页 wust.zjf | 初学一级 | 园豆:148
提问于:2012-05-31 21:08
< >
分享
最佳答案
0

很简单.

看代码是 把 La与Lb的合并结果 放到 pre中,

La = pre ; 的意思是 把 La指向将会产生的运算结果处 pre, 这样返回的 La就是 楼主希望的运算结果(合并).

 

另外具体还需要看 linkList的代码,  因为 =操作可能在 linkList中被重载.

 

 

 

 

收获园豆:50
smartfish_liu | 菜鸟二级 |园豆:220 | 2012-06-19 20:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册