Multilista suma
Clasificado en Otras materias
Escrito el en español con un tamaño de 1,69 KB
Multilista Multilista::SumarMatrizEscazaABEnC(MultA,Mult B)
{ int i,k,pos;
Nodo x,y;
Multilista C;
C=B;
if(!A.MultilistaVacia())
{ i=A.Primero();
i=A.ProximoDerecha(i);
do
{ k=A.ProximoAbajo(i);
while(k!=A.FinDeMultilista(i))
{ x=A.Multilista(k);
if(B.BuscarIgual(x,pos))
{ y=B.Multilista(pos);
y.DatoValor(y.DatoValor()+x.DatoValor());
C.Multilista(pos,y); } //fin if
else { C.Insertar(x); } //fin else
k=A.ProximoAbajo(k);
}//fin while
i=A.ProximoDerecha(i); }//fin do
while(i!=A.FinDeMultilista()); }//fin if
return C; }
bool Multilista::BuscarIgual(Nodo x,int & pos)
{ int i,k;
pos=-1;
if(!this->MultilistaVacia())
{ i=this->Primero();
i=this->ProximoDerecha(i);
do
{ k=this->ProximoAbajo(i);
while(k!=this->FinDeMultilista(i) && pos==-1)
{ if( (this->Lista(k).DatoFila()==x.DatoFila())
&& (this->Lista(k).DatoColumna()==x.DatoColumna()) )
{ pos=k; } //fin if
else
{ k=this->ProximoAbajo(k); } } //fin else-while
i=this->ProximoDerecha(i);
}while(i!=this->FinDeMultilista() && pos==-1);
return true; } // fin if
else { return false; } }