回 帖 发 新 帖 刷新版面

主题:求助

.设线性表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个回复)

沙发

(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.不太明白什么意思,不好意思。
上面有待指正。谢谢!

板凳

c语言怎么实现呀

我来回复

您尚未登录,请登录后再回复。点此登录或注册