Ciao a tutti ho un problema ... devo realizzare un algoritmo di fusione di 2 liste ( realizzate con vettori)
il risultato deve essere una terza lista "ordinata"... nel mio codice vengono solo fuse le 2 lista ma il risultato nella terza lista non è ordinato.
questo è il mio codice :
qualcuno mi spiega dove sbaglio , cioè il risultato non esce ordinato??codice:ListaV ListaV::fusione(ListaV &l1, ListaV &l2){ ListaV l3; posizione p,q,r; tipoelem ele1, ele2; p=l1.primoLista(); q=l2.primoLista(); r=l3.primoLista(); while ((!l1.fineLista(p)) && (!l2.fineLista(q))) { ele1=l1.leggiLista(p); ele2=l2.leggiLista(q); if (ele1<ele2){ l3.insLista(ele1,r); p=l1.succLista(p); }else{ l3.insLista(ele2,r); q=l2.succLista(q); r=l3.succLista(r); }//else era qui while(!l1.fineLista(p)){ l3.insLista(l1.leggiLista(p),r); p=l1.succLista(p); r=l3.succLista(r); }// while(!l2.fineLista(q)){ l3.insLista(l2.leggiLista(q),r); q=l2.succLista(q); r=l3.succLista(r); }// } return l3; }
aspetto un vostro aiuto... grazie![]()

Rispondi quotando