兩個有序鍊錶序列的合併

2021-10-13 09:59:47 字數 1645 閱讀 5500

題目描述

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2合併後的新的非降序鍊錶s3。

輸入格式:

輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。

輸出格式:

在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null。

輸入樣例:

1 3 5 -1

2 4 6 8 10 -1

輸出樣例:

1 2 3 4 5 6 8 10

一開始我直接上手做!咔咔咔

#include

using

namespace std;

int a[

1000001

],b[

1000001];

int s[

2000002];

//不知道要多大,我亂設定大小

intmain()

for(

int i=

0;i<

10001

;i++)if

(a[0]!=

-1&&b[0]

!=-1)

else

if(head1==stop1||head2==stop2)}if

(j//剩下的那個陣列一頓輸出就完事了

非常非常囉嗦,還錯了,嘖嘖嘖,好是悲傷呢。

後來我改了一點,還是錯了,害

#include

using

namespace std;

int a[

1000005];

int b[

1000005];

int s[

2000005];

//不知道要多大,我亂設定大小

intmain()

for(

int i=

0;i<

1000005

;i++

) stop1--

; stop2--;if

(stop1==-1

&&stop2==-1

)else

if(stop1==-1

)}else

if(stop2==-1

)}else

else

if(head1==stop1+

1||head2==stop2+1)

}if(j

//剩下的那個陣列一頓輸出就完事了

}else}}

for(

int i=

0;i2;i++)}

return0;

}

然後我要開始觀摩別人的**了,然後我觀摩了這篇的**pat 兩個有序鍊錶序列的合併

合併兩個有序鍊錶序列

本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型...

兩個有序鍊錶序列的合併

習題2.5 兩個有序鍊錶序列的合併 15分 本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef...

兩個有序鍊錶序列的合併

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 表示序列的結尾 不屬於這個序列 數字用空格間隔。在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為空,輸出null。1 3 ...