已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。
輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。
在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null
。
1 3 5 -1
2 4 6 8 10 -1
輸出樣例:
1 2 3 4 5 6 8 10
#includeusing namespace std;
#define ok 1
#define error 0
typedef int status;
typedef int elemtype;
typedef struct lnode *list;
typedef struct lnode
lnode,*linklist;
status initlist(linklist &l)
status isempty(linklist &l)
else
return error;
}status creatlist(linklist &l)
}void printlist(linklist &l)
}status mergelist(linklist &l1,linklist &l2,linklist &l3)
else
}p3 -> next = p1 ? p1 :p2;//若有乙個未到達末尾直接接到l3
delete l2;
}int main()
{ linklist l1,l2,l3;
initlist(l1);
initlist(l2);
initlist(l3);
creatlist(l1);
creatlist(l2);
mergelist(l1,l2,l3);
if(isempty(l3))
{cout<<"null"<
合併兩個有序鍊錶序列
本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型...
鍊錶 合併兩個有序鍊錶
標籤 鍊錶 題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 兩種解法 遞迴和非遞迴 拓展 參考 public listnode merge listnode list1,listnode list2 else 非遞迴 public li...
兩個有序鍊錶序列的合併
習題2.5 兩個有序鍊錶序列的合併 15分 本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef...