template<typename T>
void chain<T>::meld(chain<T>& a, chain<T>& b)
{
chainNode<T>* &pa = a.firstNode;
chainNode<T>* &pb = b.firstNode;
chainNode<T>* pc;
chainNode<T>*r;
r=pa;
pc=r;
pa=pa->next;
int i=1;
while(pa!=nullptr&&pb!=nullptr){
if(i%2==0){
r->next=pa;
r=pa;
pa=pa->next;
}else{
r->next=pb;
r=pb;
pb=pb->next;
}
}
r->next=pa?pa:pb;
while(pa!=nullptr){
pa=pa->next;
}
while(pb!=nullptr){
pb=pb->next;
}
firstNode=pc;
}