1个回答
展开全部
//这是用C语言的形式写的,除了那个引用是C++才有的
//C++怎么也要用new和delete吧,不推荐用以前C中的malloc和free了
//而且我觉得这代码写的很 诡异?
class OP{
public class LinkList{
public int data;
public LinkList next;
public LinkList(int data,LinkList next=null){
this.data=data;
this.next=next;
}
}
public LinkList uinon(LinkList ha,LinkList hb){
LinkList pa=ha.next,pb=hb.next;
LinkList hc=new LinkList(0);
LinkList pc=hc;
while(pa!=null&&pb!=null){
if(pa.data<pb.data){
LinkList s=new LinkList(pa.data);
pc.next=s;
pc=s;
pa=pa.next;
}else if(pa.data>pb.data){
LinkList s=new LinkList(pb.data);
pc.next=s;
pc=s;
pb=pb.next;
}else{
LinkList s=new LinkList(pa.data);
pc.next=s;
pc=s;
pa=pa.next;
pb=pb.next;
}
}
if(pb!=null){
pa=pb;
}
while(pa!=null){
LinkList s=new LinkList(pa.data);
pc.next=s;
pc=s;
pa=pa.next;
}
//pc.next=null; //在构造函数中有,不再需要了
return hc;
}
public LinkList interSect(LinkList ha,LinkList hb){
LinkList pa=ha.next;
LinkList hc=new LinkList(0);
LinkList pc=hc;
while(pa!=null){
pb=hb.next;
while(pb!=null&&pb.data<pa.data){
pb=pb.next;
}
if(pb!=null&&pb.data==pa.data){
s=new LinkList(pa.data);
pc.next=s;
pc=s;
}
pa=pa.next;
}
//pc.next=null;
return hc;
}
public LinkList subs(LinkList ha,LinkList hb){
LinkList pa=ha.next;
LinkList hc=new LinkList(0);
LinkList pc=hc;
while(pa!=null){
pb=hb.next;
while(pb!=null&&pb.data<pa.data){
pb=pb.next;
}
if(!(pb!=null&&pb.data==pa.data)){
LinkList s=new LinkList(pa.data);
pc.next=s;
pc=s;
}
pa=pa.next;
}
//pc.next=null;
return hc;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询