單鏈表的應用 單鏈表的連線 合併及逆序

2021-10-03 20:16:54 字數 1473 閱讀 9176

#include

#include

#include

#define n 5

using

namespace std;

typedef

struct lnode

lnode,

*linklist;

linklist greatendlist

(int a[n]

)//建立乙個單鏈表

else l-

>next =

null

; tail = l;

for(i =

0; i < n; i++

)else p-

>next =

null

; p-

>data = a[i]

; tail-

>next = p;

tail = tail-

>next;

}return l;

}linklist connectlist

(linklist la, linklist lb)

//連線兩個單鏈表

p->next = lb-

>next;

return la;

}linklist mergelist

(linklist la, linklist lb)

//合併兩個單鏈表

break

;case1:

q1->next = q-

>next;

q->next = p;

p1->next = q;

p1 = p1-

>next;

q = q1-

>next;

break;}

}if(p ==

null

)//處理尾巴

return la;

}linklist inverselist

(linklist l)

//將乙個單鏈表逆序(頭插法)

cout <<

"逆序後"

;return l;

}void

putlist

(linklist l)

//輸出單鏈表

cout << endl;

}int

main()

la =

greatendlist

(a);

printf

("正在建立第二個鍊錶,請輸入%d個元素值:"

, n)

;for

(i =

0; i < n; i++

) lb =

greatendlist

(b);

while(1

)break;}

if(g ==4)

break;}

return0;

}

單鏈表(合併單鏈表)

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

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

問題描述 兩個非降序鍊錶的並集,例如將鍊錶1 2 3 和 2 3 5 並為 1 2 3 5,只能輸出結果,不能修改兩個鍊錶的資料。輸入形式 第一行首先是資料的個數,然後是第乙個鍊錶的各結點值,以空格分隔。第二行首先也是資料的個數,然後是第二個鍊錶的各結點值,以空格分隔。輸出形式 合併好的鍊錶,以非降...

單鏈表的合併

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...