AleksandarArkan

Prova

Apr 29th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. //funziona
  2. void elimina(struct elemento *lista,int x){
  3.     struct elemento *precedente=NULL;
  4.     struct elemento *cancella;
  5.     struct elemento *scorri;
  6.     scorri=lista;
  7.    
  8.    
  9.     while(scorri!=NULL){
  10.         if(scorri->num==x){//devo cancellare
  11.             cancella=scorri;
  12.             if(precedente==NULL  && scorri->next==NULL){
  13.                 lista=NULL;
  14.                 free(cancella);
  15.                 return;
  16.                 }
  17.             if(precedente==NULL && scorri->next!=NULL){
  18.                 lista=lista->next;
  19.                 free(cancella);
  20.                 return;
  21.                 }
  22.             if(precedente!=NULL && scorri->next!=NULL){
  23.                 precedente->next=scorri->next;
  24.                 free(cancella);
  25.                 return;
  26.                 }
  27.             if(precedente!=NULL && scorri->next==NULL){
  28.                 precedente->next=NULL;
  29.                 free(cancella);
  30.                 return;
  31.                 }
  32.             }//fine if controllo se da cancellare
  33.         precedente=scorri;
  34.         scorri=scorri->next;
  35.        
  36.         }//fine while
  37.    
  38.     return;
  39.     }
  40.  
  41. //funzione principale
  42. void eliminaPari(struct elemento *lista){
  43.     if(lista==NULL)
  44.         return;
  45.     else{
  46.         if(lista->num%2==0){
  47.             elimina(lista,lista->num);
  48.             eliminaPari(lista->next);
  49.             }
  50.         else
  51.             eliminaPari(lista->next);
  52.         }
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment