兩個已排序鍊錶的合併

2021-05-25 05:01:09 字數 422 閱讀 5261

1 typedef struct nodenode, *linklist;

5 void merge(linklist la, linklist lb, linklist &lc)

6 9 if(!lb)

10 node* p;

11 12 // 確定最大值在la上, 還是lb上

13 if(la.data > lb.data)

14 else

15 16 while(la &&lb)

17 else if(la.data < lb.data)

23 else

33 p = p->next;

34 }

35 // 剩餘部分鍊錶的掛接

36 p->next = (la ? la:lb);

37 }

from:

合併兩個已排序的鍊錶

題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使得新煉表中的結點仍然按照順序排序 分析 這個問題一出來,馬上就可以想到遞迴的思想,這種思想在鍊錶以及樹的操作中相當常見,在本題中主要涉及的還是鍊錶中值得比較,比較出較小的結點就插入新的鍊錶中,然後再比較下乙個結點,直接上 就一目了然了。public s...

合併兩個已排序的表

merge演算法 假定有乙個陣列a 1 m p,q,r,為它的三個索引,a p q a q 1,r 各自公升序排列,我們需要重新使得a p,r 也按公升序排列,我們用兩個指標s和t分別指向p和q 1,定義乙個輔助陣列b r p 1 比較a s 和a t 若前者小於等於後者,則將a p 存放到我們先前...

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...