题目:

     有顺序表A和B,其元素均按从小到大的升序排列,编写一个算法,将它们合并成一个顺序表C,要求C的元素也按从小到大的升序排列

代码:
#include<stdio.h> #define MAX 100 typedef int datatype; typedef struct {
datatype a[MAX]; int size; }sequence_list; void init(sequence_list *L) {
L->size=0; } void function(sequence_list *L,sequence_list *R) { int i,j,k;
for(i=0;i<R->size;i++) { for(j=L->size-1;j>=0;j--) { if(R->a[i]<L->a[j]) {
L->a[j+1]=L->a[j]; if(j==0) L->a[0]=R->a[i]; } else if(R->a[i]>=L->a[j]) {
L->a[j+1]=R->a[i]; break; } } L->size++; } } int main() { sequence_list L,R;
datatype a; int i; init(&L); init(&R); printf("请从小到大输入第一个顺序表,以0结尾:");
scanf("%d",&a); while(a) { L.a[L.size]=a; L.size++; scanf("%d",&a); }
printf("\n请从小到大输入第二个顺序表,以0结尾:"); scanf("%d",&a); while(a) { R.a[R.size]=a;
R.size++; scanf("%d",&a); } function(&L,&R); printf("\n合成过后的顺序表是:");
for(i=0;i<L.size;i++) printf("%d ",L.a[i]); return 0; }
 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信