兩個線性表融合的演算法

2022-01-17 08:30:12 字數 497 閱讀 5305

問題描述:

線性表a(a1,a2,...am)和b(b1,b2,...bm),按以下規則融合

c=(a1,b1,...am,bm,bm,bm+1...bn) 當m<=n時

c=(a1,b1,...an,bn,an,bn+1...am) 當m>n時

單鏈表的長度m,n均未顯示儲存,c表利用a表和b表中的結點空間構成。

自己分析在另個地方寫了,(未儲存。。)**沒書上的好,記錄下書上的演算法:

status listmerge_l(linklist &a,linklist &b, linklist &c)

if(!pa) qb->next=pb;

pb=b;

free(pb);

return ok;

}巧妙之處:兩個指標的運用,試想一下,如果把順序打亂會是怎樣的結果,剛開始自己思考的時候有想到這個問題,覺得那樣插入資料會出錯,(開始也沒想到要用到兩個指標),可是照這樣的寫法就不會了,**很精練,融合了很多的思考,學習了。

兩個線性表合併為一演算法實現

la和lb是兩個int型陣列,將他們合併為乙個陣列lc 課本p20演算法2.1 include define len la 4 define len lb 7 函式 獲取元素 int getelem int list,int index 函式 插入元素 void listinsert int lis...

線性表 兩個有序鍊錶序列的合併

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

線性表 兩個有序鍊錶序列的交集

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