單鏈表交叉合併

2021-10-07 03:53:49 字數 724 閱讀 5735

輸入兩個單鏈表,使其交叉合併形成乙個單鏈表。

如: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;

//鍊錶輸入資料

nodep create1()

else

scanf

("%c"

,&c)

;//控制結束時刻

if(c==

'\n'

)break;}

return head;

} nodep create2()

else

}return head;

}//鍊錶交叉合併

void

merge

(nodep head1, nodep head2)if(

!p1 && p2)

q->next = p2;

}//列印鍊錶

void

print

(nodep head)

}int

main()

由於新學鍊錶,所以對於鍊錶不大懂,只能粗略注釋。。。

單鏈表的合併(交叉合併,公升序合併)

單鏈表的合併情況有如下幾種 1 length l1 length l2 2 length l1 length l2 3 length l1 交叉合併的重點在交叉,不保證合併後的資料是有序的 公升序單鏈表合併的重點在公升序,可以保證合併後的資料是公升序的,但是前提是輸入的鍊錶是公升序的 include...

倆單鏈表資料交叉合併

include typedef struct lnodelinklist 構造乙個單鏈表結構體 void createlist linklist l,int a,int n 後插法建立單鏈表 void display linklist l coutnext,p3 p1 p2分別指向倆表的第一節點 l...

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...