Delete x;
x=y;
} while (x!=Head);
}
//--------------------------------
NODE *SETINLIST::Insert(NODE *p){
NODE *x=new NODE;
x->Next=p->Next;
p->Next=x;
Return x;
}
//----------------------------------
void SETINLIST::Delete(NODE *p){
NODE *x=p->Next;
p->Next=x->Next;
Delete p;
}
//------------------------------------
SETINLIST SETINLIST::operator *(const SETINLIST &x){
SETINLIST y;
NODE *p,*q, *r /* указатель на хвост результата */,*n;
r=y.Head;
for(p=this->Head->Next,q=x.Head->Next;
p!=this->Head && q!=x.Head;){
if(p->El>q->El){
q=q->Next;
Continue;
}
if(p->El<q->El){
p=p->Next;
Continue;
}
if(p->El==q->El){
n=new NODE;
n->Next=y.Head;
n->El=p->El;
r->Next=n;
r=n;
p=p->Next;
q=q->Next;
Continue;
}
} // for
Return y;
}
//------------------------------------
SETINLIST SETINLIST::operator +(const SETINLIST &x){
SETINLIST y;
NODE *p,*q,*r /* указатель на хвост результата */,*n;
r=y.Head;
for(p=this->Head->Next,q=x.Head->Next;
p!=this->Head || q!=x.Head;){
n=new NODE;
n->Next=y.Head;
r->Next=n;
r=n;
if(p->El>q->El){
n->El=q->El;
q=q->Next;
Continue;
}
if(p->El<q->El){
n->El=p->El;
p=p->Next;
Continue;
}
if(p->El==q->El){
n->El=p->El;
p=p->Next;
q=q->Next;
Continue;
}
} // for
Return y;
}
//------------------------------------
SETINLIST SETINLIST::operator -(const SETINLIST &x){
SETINLIST y;
NODE *p,*q,*r /* указатель на хвост результата */,*n;
r=y.Head;
for(p=this->Head->Next,q=x.Head->Next;p!=this->Head;){
if(p->El>q->El){
q=q->Next;
Continue;
}
if(p->El<q->El){
n=new NODE;
n->Next=y.Head;
n->El=p->El;
r->Next=n;
r=n;
p=p->Next;
Continue;
}
if(p->El==q->El){
p=p->Next;
Continue;
}
} // for
Дата добавления: 2014-12-02; просмотров: 1026;