链表A和B,其中的数据均为整数,且都按增序排列,生成新的链表D=A-B (D中为在A中出现不在B中出现的元素)

新建一个链表D,我自己是这样写的,但就是不对
void Jian(LinkList LA,LinkList LB)
{
LinkList D,q=LA->next,p=LB->next,o,r;int k=1;
D=(LinkList)malloc(sizeof(LNode));
D->next=NULL;o=D;
for(q=LA->next;q!=NULL;q=q->next)
{
for(p=LB->next;q->data <= p->data || p!=NULL;p=p->next)
{
if(q->data == p->data)k=0;
}
if(k)
{
r=(LinkList)malloc(sizeof(LNode));
r->data = q->data;
r->next=NULL;
o->next=r;
o=r;

}

}
printf("D:");
ListPrint(D);
}

第1个回答  2019-04-02
作了修改:
void Jian(LinkList LA,LinkList LB)
{
LinkList D,q=LA->next,p=LB->next,o,r;int k=1;
D=(LinkList)malloc(sizeof(LNode));
D->next=NULL;o=D;
for(;q!=NULL;q=q->next)
{k=1;
for(p=LB->next;p!=NULL && q->data >=p->data;p=p->next)//这一行改了
{
if(q->data == p->data){k=0; break;}
}
if(k)
{
r=(LinkList)malloc(sizeof(LNode));
r->data = q->data;
r->next=NULL;
o->next=r;
o=r;
}

}
printf("D:");
ListPrint(D);
}

追问

还是不行

追答

确保LA和LB都能正确打印的吗?
把其余的代码分次发上来,有了辅助的代码才能测试调试的。

追问

已私信

本回答被提问者采纳
相似回答