两个有序顺序表la,lb合并为lc(不删除重复)。
#include<stdio.h>
struct LNode {
int data[30];
int last;
};
int main()
{
struct LNode la,lb;
struct LNode *p;
int lc[60];
int k=2;
int n;
int i=0,j=0,l=0;
p = &la;
while(k--)
{
printf("请输入顺序表元素个数:\n");
scanf("%d",&p->last);
for(int i =0;i<p->last;i++)
{
printf("请输入元素:\n");
scanf("%d",&p->data[i]);
}
p = &lb;
}
for(;i<la.last;i++)
{
for(;j<lb.last;)
{
if(la.data[i]<=lb.data[j])
{
lc[l]= la.data[i];
l++;
break;
}
else
{
lc[l]= lb.data[j];
l++;
j++;
continue;
}
}
if(j==lb.last)
break;
}
for(;i<la.last;i++)
{
lc[l] = la.data[i];
l++;
}
for(;j<lb.last;j++)
{
lc[l] = lb.data[j];
l++;
}
for(int i = 0;i<l;i++)
{
printf("%d ",lc[i]);
}
return 0;
}
如有纰漏还请指出。