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; } }

Entradas relacionadas: