将有序线性表La={2,4,6,7,9},Lb={1,5,7,8},合并为Lc={1,2,4,5,6,7,7,8,9}.
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/20 11:00:20
将有序线性表La={2,4,6,7,9},Lb={1,5,7,8},合并为Lc={1,2,4,5,6,7,7,8,9}.
有没有完整的代码?
有没有完整的代码?
这个是算法,不知道对你与没有帮助,这个题目还用到了二路归并排序法,是很经典的一道题哦!
设Lc是一个空表,使用两个指针i,j分别指向La和Lb中的元素,如果La中的元素La-->elem[i]>Lb-->elem[j],则选择Lb中的元素,j和k加一.最后La中的元素有剩余,直接搬到Lc中即可.
void merge(Seqlist *La,Seqlist *Lb,Seqlist *Lc)
{
int i,j,k,l;
i=0;j=0;k=0;
while(ilast&&jlast)
if(La-->elem[i]elem[j])
{Lc-->elem[k]=La-->elem[i];
i++;k++;
}
else
{Lc-->elem[k]=Lb-->elem[i];
j++;k++;
}
while(ilast) /*当La中元素剩余时,将La中剩余元素赋给Lc*/
{Lc-->elem[k]=La-->elem[i];
i++;k++;
}
while(jlast) /*当Lb中元素剩余,将Lb中剩余元素赋给Lc*/
{Lc-->elem[k]=Lb-->elem[j];
j++;k++;
}
Lc-->last=La-->last+Lb-->last+1;
}
设Lc是一个空表,使用两个指针i,j分别指向La和Lb中的元素,如果La中的元素La-->elem[i]>Lb-->elem[j],则选择Lb中的元素,j和k加一.最后La中的元素有剩余,直接搬到Lc中即可.
void merge(Seqlist *La,Seqlist *Lb,Seqlist *Lc)
{
int i,j,k,l;
i=0;j=0;k=0;
while(ilast&&jlast)
if(La-->elem[i]elem[j])
{Lc-->elem[k]=La-->elem[i];
i++;k++;
}
else
{Lc-->elem[k]=Lb-->elem[i];
j++;k++;
}
while(ilast) /*当La中元素剩余时,将La中剩余元素赋给Lc*/
{Lc-->elem[k]=La-->elem[i];
i++;k++;
}
while(jlast) /*当Lb中元素剩余,将Lb中剩余元素赋给Lc*/
{Lc-->elem[k]=Lb-->elem[j];
j++;k++;
}
Lc-->last=La-->last+Lb-->last+1;
}
线性表LA=(3,5,8,11),LB=(2,6,8,9,11,15,20),LA和LB代表两个集合A.B,
已知三角形内角LA LB LC 2LC=LA+LB,LA-LB=40°求LA LB LC 的度数
la-1/2l+lb-1/3l+lc-1/4l=0,求a+b+c的值.
茬圆内接四边形abcd满足:la:lb:lc=|:2:5求ld多少
数据结构(C语言版)设有线性表LA(3,5,8,110)和LB(2,6,8,9,11,15,20)求新集合?
在四边形ABCD中,LD=60°,LB比LA大20°,LC是LA的2倍,求LA,LB,LC的大小.
已知三角形ABC中,LC=90,且SINa和COSb是方程KX^2-KX+1=0的两根,求K,LA,LB的值
请用C语言编程实现 1.已知线性表LA和LB中的数据元素按值非递增有序排列,现要求将LA和LB归并为一个新
若la-5l+lb+6l=0,求-b-a-(-2/3)的值
已知角ABC中,LA-LB=15度,LC二75度,求LB的度数
如图,请用适当方法说明LA+LB+LC+LD+LE=180°
己知|a-2l+lb-3l+lc-4l=0,求式子a+b+c的值