單鏈表的合併情況有如下幾種:
(1)length(l1)=length(l2)
(2)length(l1)>length(l2)
(3)length(l1)(交叉合併的重點在交叉,不保證合併後的資料是有序的)
(公升序單鏈表合併的重點在公升序,可以保證合併後的資料是公升序的,但是前提是輸入的鍊錶是公升序的)
#include
#include
typedef struct lnode lnode,
*linklist;
linklist tailcreatlist
(lnode *l)
r->next=
null
;returnl;
}void
display
(lnode *l)
printf
("\n");
}linklist union
(lnode *
l1,lnode *
l2,lnode *l3)
elsel3=
l3->next;}if
(l1==null
&&l2
==null)if
(l1!=null
)else
returnl3;
}int main()
單鏈表交叉合併
輸入兩個單鏈表,使其交叉合併形成乙個單鏈表。如 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...
倆單鏈表資料交叉合併
include typedef struct lnodelinklist 構造乙個單鏈表結構體 void createlist linklist l,int a,int n 後插法建立單鏈表 void display linklist l coutnext,p3 p1 p2分別指向倆表的第一節點 l...
單鏈表合併
某公司的面試題。兩個公升序單鏈表a,b,給定乙個節點c。不能申請其他節點情況下將a,b 按公升序排列。include include include struct link 建立鍊錶 nrandom 自由因子 ncount 鍊錶節點數目 link create const int nrandom,c...