順序表的有序合併

2021-09-19 07:49:35 字數 712 閱讀 4926

題目描述

有兩個順序表la和lb,其元素均為非遞減有序排列,編寫演算法,

將它們合併成乙個順序表lc,要求lc也是非遞減有序排列。

例如,la=(2,2,3),lb=(1,3,3,4),則lc=(1,2,2,3,3,3,4)

輸入描述

分別輸入兩個順序表la和lb,以-1結束輸入

輸出描述

輸出歸併後的順序表lc

輸入樣例

2 2 3 -1

1 3 3 4 -1

輸出樣例

1 2 2 3 3 3 4

解析:依次比較la和lb表中數值,如果a值大,則存入c表,反之,b存入。

#include #define max 100

typedef int etype;

typedef structlist;

void pri(list *l)//輸入表中值函式

l->last=i-1;

}void sum(list *la,list *lb,list *lc)

else

k++;

} while(i<=la->last)//若b全存入了以後,把a中剩餘的元素依次存入c

while(j<=lb->last)

lc->last=la->last+lb->last+1;

}int main()

有序順序表的合併操作的實現

已知兩非遞減的順序線性表,要求合併成乙個新的非遞減順序線性表。測試資料為整型 description 輸入包含四行,第一行為自然數n,表示第乙個非遞減順序線性表的長度 第二行為n個自然數構成的非遞減順序線性表 第三行為自然數m,表示第二個非遞減順序線性表的長度 第四行為m個自然數構成的非遞減順序線性...

有序順序表的合併操作的實現

有序順序表的合併操作的實現 1000 ms 10000 kb 2887 15373 已知兩非遞減的順序線性表,要求合併成乙個新的非遞減順序線性表。測試資料為整型 輸入 輸入包含四行,第一行為自然數n,表示第乙個非遞減順序線性表的長度 第二行為n個自然數構成的非遞減順序線性表 第三行為自然數m,表示第...

合併兩個有序表 順序表

問題描述 編制乙個能演示將兩個有序表合併為乙個有序表的程式。基本要求 已知遞增有序線性表la和lb,現將la和lb合併到lc,lc也是遞增有序的。測試資料 la 3,5,8,11 lb 2,6,8,9,11,15,20 合併後的lc 2,3,5,6,8,9,11,15,20 includeconst...