while(表1不结束 && 表2不结束) { if (表1结束 || 表1.当前值>表2.当前值) {表2.当前值插...
bool Merge(SeqList A, SeqList B, SeqList &C)\x0d\x0a{ //合并有序顺序表A与B成为一个新的有序顺序表C \x0d\x0aif(A.length+B.length>C.maxSize) //大于顺序表的最大长度\x0d\x0areturn false;\x0d\x0aint i=0,j=0,k=0;\x0d\x0awhile(i<A.length && ...
1.最容易的办法就是把两个表保存在一个新的表里,然后冒泡排序(就是这么暴力。)2.不过这个问题用指针实现最方便了。两个指针分别指着两个递增表:比较指针所指的值大小,将小的那个保存在新的表里,然后将小的那个指针往前走一步。再比较,再保存,再走...直到其中一个表走完,把另一个表剩...
int InsElem(SqList &sq,ElemType x,int i) /*插入元素*/{int j;if (i<1 || i>sq.length+1) /*无效的参数i*/return 0;for (j=sq.length;j>i-1;j--) //这里sq.data[j]=sq.data[j-1];sq.data[i-1]=x; /*在位置i处放入x*/sq.length++; /*线性表长度增1*...
typedef int elemtype;typedef struct {elemtype v[MAXLEN];int len;}sqlist;sqlist *a,*b,*c;void f( sqlist *a, sqlist *b, sqlist *c){ int i,j,k;i=1;j=1;k=1;while(i<=a->len&&j<=b->len){ if(a->v[i]<=b->v[j]){c->v[k]=a->v[i];i++; } else ...
include int merge(int a[],int b[],int an,int bn) { int i=0,j=0,k=0,temp,m[an+bn]; while(i
int merge(int* a,int* b,int*c,int alen,int blen){ int i=0,j=0,k=0;//每次将a和b中当前的元素进行比较,并将小的一个存入到c中 while(i<alen && j<blen){ if(a[i]<b[j])c[k]=a[i++];else c[k]=b[j++];k++;} //其中一个数组已经结束,将另一个数组剩余部分全部...
/*.已知有两个按元素值递增有序的顺序表A和B,设计一个算法将表A和表B的全部元素归并为一个按元素值非递减有序的顺序表C。要求:从键盘输入顺序表A和B的各元素,编程实现上述算法,输出顺序表A、顺序表B和顺序表C 的所有元素值 。 [j])//如果表A的数据
int a[N]={12,2,5,45,8},b[M]={58,7,6,98,5,12},c[M+N];//预设测试数据 int i,j,k;SelectSort(a,N);//先对两个无序数组进行排序 SelectSort(b,M);i=0;j=0;k=0;//c数组下标 while(i<N && j<M)//数组a,b有元素 { if(a[i] >= b[j])//将两者较小者放进...