倆單鏈表資料交叉合併

2021-10-05 05:25:51 字數 795 閱讀 5729

#include

typedef struct lnodelinklist; //構造乙個單鏈表結構體

void createlist(linklist *&l,int a,int n)

}//後插法建立單鏈表

void display(linklist *l)coutnext,*p3;//p1 p2分別指向倆表的第一節點

l3=l1; //用l1的頭節點作為l3的頭節點

p3=l3; //p3的初值指向l3的頭節點

while(p1&&p2)

p3->next=p1?p1:p2;

delete l2;

}//合併兩個單鏈表

int main(),b[4]=;

createlist(l4,b,4);

cout<<「當m<=n時 l1:」;

display(l4);

createlist(l5,a,3);

cout<<「l2:」;

display(l5);

mlist(l4,l5,l6);

cout<<「l3:」;

display(l6);

createlist(l1,a,3);

cout<<「當m>n時 l1:」;

display(l1);

createlist(l2,b,4);

cout<<「l2:」;

display(l2);

mlist(l1,l2,l3);

cout<<「l3:」;

display(l3);

return 0;}

單鏈表交叉合併

輸入兩個單鏈表,使其交叉合併形成乙個單鏈表。如 1 3 5 7 9 2 4 6 8 0 合併後 1 2 3 4 5 6 7 8 9 0 如果乙個單鏈錶比另乙個長,則將多餘部分加到後面。具體 如下 include 定義鍊錶 typedef struct node node,nodep 鍊錶輸入資料 n...

遞迴法合併倆個單鏈表

原題如下 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。我覺得解題思路用這一張圖就可以表達的很清楚了。我的 非遞迴的,遞迴的在下面 public class listnode public class solution if list2 null lis...

資料結構之倆迴圈單鏈表合併

這段時間要好好調整一下自己了,發現基礎才是王道,所以打算好好鋪一鋪我滴c指標這一塊了,所以資料結構將會斷更一段時間,不過接下來要和大家見面的就是我們上次的迴圈單鏈表之合併 題目 將鍊錶a和鍊錶b合併為鍊錶c 演算法思想 將a鍊錶的尾指標reara與b鍊錶的第乙個節點鏈結起來,並且修改b鍊錶的尾指標r...