單鏈表的合併演算法 3 2 單鏈表的合併

2021-10-11 23:38:02 字數 1408 閱讀 8209

【問題描述】

兩個非降序鍊錶的並集,例如將鍊錶1->2->3 和 2->3->5 並為 1->2->3->5,只能輸出結果,不能修改兩個鍊錶的資料。

【輸入形式】

第一行首先是資料的個數,然後是第乙個鍊錶的各結點值,以空格分隔。

第二行首先也是資料的個數,然後是第二個鍊錶的各結點值,以空格分隔。

【輸出形式】

合併好的鍊錶,以非降序排列,值與值之間以空格分隔。

【樣例輸入】

4 4 7 10 34

7 1 4 6 29 34 34 52

【樣例輸出】

1 4 6 7 10 29 34 52

就是把筆記2.3的例2.4其中的mergelinklist函式稍微做了修改:

chilan yu:2.3 線性表的鏈式儲存(1)​zhuanlan.zhihu.com

typedef struct nodenode, *linklist;//linklist為結構指標型別

/*初始化單鏈表*/

void initlist(linklist *l)

/*尾插法建表*/

void createfromtail(linklist l,int len)

r->next = null;//將最後乙個結點的next域置空,表示鍊錶結束

}/*合併兩個有序的單鏈表*/

linklist mergelinklist(linklist la,linklist lb)

else if(pa->data>pb->data)

else

}if(pa)//若表la未完,將表la中後繼元素鏈到新錶lc表尾

單鏈表(合併單鏈表)

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

單鏈表的合併

function 單鏈表的合併 created by xilong date 2017.2.5 include iostream using namespace std define true 1 define false 0 define ok 1 define error 0 typedef i...

單鏈表合併

某公司的面試題。兩個公升序單鏈表a,b,給定乙個節點c。不能申請其他節點情況下將a,b 按公升序排列。include include include struct link 建立鍊錶 nrandom 自由因子 ncount 鍊錶節點數目 link create const int nrandom,c...