Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Creare una funzione che data una lista bidirezionale di interi, sposti tutti i primi N elementi, con N passato alla funzione
- in fondo alla lista. Se N è maggiore della grandezza della lista, tutti gli elementi della lista vanno duplicati, tranne l'ultimo.*/
- function sposta_elem(l,n)
- { var cur,q,p,prev,c1=0,c2=-1,tmp={};
- if(l==null){return;}
- while(l.prec!=null){l=l.prec;}
- p=l;
- while(p!=null)
- { c1++;if(prev.succ==null){ q=prev;} p=p.succ;}
- if(n<c1)
- { for(prev=l;prev!=null;prev=prev.succ)
- { c2++;if(c2<n)
- {if(prev==l)
- { tmp={x:prev.x,succ:null,prec:null};
- l=l.succ;prev.succ.prev=null; q.succ=tmp; tmp.prec=q;q=q.succ;
- }
- else
- {tmp={x:prev.x,succ:null,prec:null};prev.prec.succ=prev.succ;
- prev.succ.prec=prev.prec; q.succ=tmp; tmp.prec=q;q=q.succ;
- }
- } else
- { for(prev=l;prev.succ!=null;prev=prev.succ)
- { tmp={x:prev.x,succ:null,prec:null}; tmp.prec=prev;tmp.succ=prev.succ;
- prev.succ=tmp;tmp.succ.prec=tmp;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement