java链表交集并集,一个链表求集合并集交集的异常
C/C++ code//求并集的函數:
void bingji(mylist*p,mylist*q,mylist*&r)//r作為并集列表的頭指針,p,q是輸入的兩個指針
{
mylist *k,*m;
r=new mylist;
m=r;
for(;p;)//把一個集合的值復制到
{
m->data=p->data;
k=new mylist;
m->next=k;
p=p->next;
m=m->next;
}
//下面要把q中有的且r中沒有的元素添加到r中
for(;q;)
{
m->data=q->data;
k=new mylist;
m->next=k;
q=q->next;
m=m->next;
}
delete k;
m->next=NULL;
}
//求交集的函數:
void jiaoji(mylist*p,mylist*q,mylist*&r)//這樣做的話會雖然能求出正確的交集,但是會導致破壞原鏈表
{
mylist *m,*n,*k;
mylist *temp;//用于存放前一個節點的地址
r=new mylist;
m=r;
n=q;
int i=-1;
for(;p;)
{
for(;q&&-1==i;)
{
if(p->data==q->data)
{
k=new mylist;
m->data=p->data;
m->next=k;
m=m->next;
i=0;
if(q==n)
{
q=q->next;
n=q;
}
else
{
temp->next=q->next;
q=q->next;
}
}
else
{
temp=q;
q=q->next;
}
}
i=-1;
p=p->next;
q=n;
}
delete k;
m->next=NULL;
}
總結
以上是生活随笔為你收集整理的java链表交集并集,一个链表求集合并集交集的异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 回音的消除,回声消除AEC
- 下一篇: oracle主键跟踪,Oracle根据主