主题:求助
wp2011
[专家分:130] 发布于 2006-10-10 11:17:00
.设线性表LA=(3,5,8,11)和LB=(2,6,8,9,11,15,20)采用顺序存储结构,
(1)若LA和LB分别表示两个集合A和B,求新集合A=AUB(并操作相同元素不保留)
(2)将LA与LB表归并,需要求仍有序(相同元素要保留)
2,请选用顺序存储或链表结构,编写26个字母按特定字母值插入或删除的完整程序。
有哪位高手帮忙指点一下
回复列表 (共2个回复)
沙发
cherys [专家分:10] 发布于 2006-10-10 23:15:00
(1)void together_sq(sqlist La,sqlist Lb,sqlist &Lc)
{
int *pa=La.elem;
int *pb=Lb.elem;
Lc.listsize=Lc.length=La.length+Lb.length;
int *pc=Lc.elem=(int *)malloc(Lc.listsize * sizeof(int));
if(! Lc.elem)
return 0;
int *pa_last=La.elem+La.length-1;
int *pb_last=Lb.elem+Lb.length-1;
while(pa<=pa_last && pb<=pb_last)
{
if(*pa<*pb)
*pc++=*pa++;
if(*pa>*pb)
*pc++=*pb++;
if(*pa==*pb)
pb++;
}
while(pa<=pa_last)
*pc++=*pa++;
while(pb<=pb_last)
*pc++=*pb++;
}
(2)void together_sq(sqlist La,sqlist Lb,sqlist &Lc)
{
int *pa=La.elem;
int *pb=Lb.elem;
Lc.listsize=Lc.length=La.length+Lb.length;
int *pc=Lc.elem=(int *)malloc(Lc.listsize * sizeof(int));
if(! Lc.elem)
return 0;
int *pa_last=La.elem+La.length-1;
int *pb_last=Lb.elem+Lb.length-1;
while(pa<=pa_last && pb<=pb_last)
{
if(*pa<=*pb)
*pc++=*pa++;
else
*pc++=*pb++;
}
while(pa<=pa_last)
*pc++=*pa++;
while(pb<=pb_last)
*pc++=*pb++;
}
2.不太明白什么意思,不好意思。
上面有待指正。谢谢!
板凳
wp2011 [专家分:130] 发布于 2006-10-11 17:11:00
c语言怎么实现呀
我来回复