數據結構題-順序表:
將倆有序順序表合併爲一個新的有序順序表,並返回結果
輸入:
3 3
1 2 3 4 5 6
輸出
1 2 3 4 5 6
輸入:
3 3
3 3 4 4 5 5
輸出:
3 4 5
思路:
簡單比較兩個數組大小,
由於有序,
1.如果結果數組當前存儲和a數組或者b數組當前存儲重複,就跳過, 2.如果沒有重複,就把小的那個存入。
注意:
注意相等情況的處理
,不要遺漏
c語言代碼:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a_len=0;
int b_len=0;
int a[50];
int b[50];
scanf("%d",&a_len);
scanf("%d",&b_len);
int i=0;
for(i=0;i<a_len;i++){
scanf("%d",&a[i]);
}
for(i=0;i<b_len;i++){
scanf("%d",&b[i]);
}
i=0;int j=0;int k=0;int c[100];
c[0]=a[0];
while(i!=a_len || j!=b_len){
if (c[k]==b[j])
{
j++;
continue;
}
if(c[k]==a[i])
{
i++;
continue;
}
if(a[i]<=b[j]&&c[k]!=a[i]){
k++;
//printf("a[i]:%d\n",a[i]);
c[k]=a[i];
i++;
}
else if(a[i]>b[j]&&c[k]!=b[j])
{
k++;
//printf("b[j]:%d\n",b[j]);
c[k]=b[j];
j++;
}
}
for (i = 0; i < k+1; i++)
{
printf("%d",c[i]);
}
}
結果示意: