輸入兩個單鏈表,使其交叉合併形成乙個單鏈表。
如: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,完成依次...