while(pa&&pb) //pa,pb指针都不为空,则进入循环
{
CreateItem(s); //创建一个新的项目s(不知道函数实现调用的是不是malloc)
i=ItemComp(*pa,*pb); //两个项目之间的比较,返回值的意思需要根据函数代码来看
if(i==0){
s->coef=pa->coef+pb->coef; //将两个项目中的coef元素之后给新的项目s的coef
s->expn=pa->expn;//给结构体的元素赋值
if(s->coef){last->next=s;s->next=NULL;last=s;}//如果项目s的coef不为零,那就把s插入到链表的尾部,同时把last指向新的尾节点
pa=pa->next;//指着向后移
pb=pb->next;//指着向后移
}
else if(i<0){s->coef=pa->coef;s->expn=pa->expn;//如果i<0,就值大的pa指针的两个元素赋给s
last->next=s;//下面三句是把s插入到链表的尾部,同时把last指向新的尾节点
s->next=NULL;
last=s;
pa=pa->next;//值大的pa指针向后一位
}
else{ s->coef=pb->coef;s->expn=pb->expn;//下面的这个分支的功能同上,把值大的pb指针赋给s
last->next=s; s->next=NULL;
last=s;
pb=pb->next;
}
}
s0=pa?pa:pb;//如果pa是空指针就把pb指针赋给s0,反之,则把pa赋给s0
while(s0){
CreateItem(s);//创建新的项目节点s
*s=*s0;
last->next=s;//下面三句是把s插入到链表的尾部,同时把last指向新的尾节点
s->next=NULL;
last=s;
s0=s0->next;//s0指针向后移一位
}
认真解答的,及时采纳。
依我看,是一段操作链表的代码。但是没有注释,你又不写明前因后果,没法看了。
我的建议:
1 如果是你自己写的程序,请理清代码结构,写好详细注释,并说明输入和输出是什么。
2 如果是你抄别人的程序,请找那个人帮你清代码结构,写好详细注释,并说明输入和输出是什么。
3 如果你是网上找的程序,请找有说明文档的程序。
亲, 你能告诉我你这是在闹哪样 -。-
LZ你好歹把数据结构写出来吧~~~