Advertisement
Meruem

Complex 2.

Jun 26th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Creare una funzione che data una lista bidirezionale di interi, sposti tutti i primi N elementi, con N passato alla funzione
  2. in fondo alla lista. Se N è maggiore della grandezza della lista, tutti gli elementi della lista vanno duplicati, tranne l'ultimo.*/
  3. function sposta_elem(l,n)
  4. { var cur,q,p,prev,c1=0,c2=-1,tmp={};
  5.     if(l==null){return;}
  6.     while(l.prec!=null){l=l.prec;}
  7.     p=l;
  8.     while(p!=null)
  9.     { c1++;if(prev.succ==null){ q=prev;} p=p.succ;}
  10.         if(n<c1)
  11.                 { for(prev=l;prev!=null;prev=prev.succ)
  12.                     { c2++;if(c2<n)
  13.                         {if(prev==l)
  14.                             {   tmp={x:prev.x,succ:null,prec:null};
  15.                                 l=l.succ;prev.succ.prev=null; q.succ=tmp; tmp.prec=q;q=q.succ;
  16.                             }
  17.                                 else
  18.                                     {tmp={x:prev.x,succ:null,prec:null};prev.prec.succ=prev.succ;
  19.                                         prev.succ.prec=prev.prec; q.succ=tmp; tmp.prec=q;q=q.succ;
  20.                                     }
  21.                         } else 
  22.                                 { for(prev=l;prev.succ!=null;prev=prev.succ)
  23.                                                 { tmp={x:prev.x,succ:null,prec:null}; tmp.prec=prev;tmp.succ=prev.succ;
  24.                                             prev.succ=tmp;tmp.succ.prec=tmp;
  25.                                                 }
  26.                                 }
  27. }
  28.                 }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement