L'ho corretto in questo modo...dovrebbe essere giusto....spero...grazie mille....alla proxima![]()
![]()
![]()
codice:#include <stdio.h> #include <malloc.h> #include <stdlib.h> #define N 150 typedef struct lista { int info; struct lista *next; }Ls; Ls *crea_lista(Ls*,int); //PROTOTIPI void stampa(Ls*); Ls*modifica(Ls*,Ls*); main(){ //MAIN Ls*inizio1=NULL,*aux1; Ls*inizio2=NULL,*aux2; int somma=0; srand(time(NULL)); do{ inizio1=crea_lista(inizio1,rand()%20); aux1=inizio1; inizio2=crea_lista(inizio2,rand()%20); aux2=inizio2; somma+=aux1->info+aux2->info; } while(somma<N); //CONTROLLO printf("\nL1 : "); stampa(inizio1); printf("\nL2 : "); stampa(inizio2); modifica(inizio1,inizio2); printf("\nLa lista L1 modificata :\n"); stampa(inizio1); free(inizio1); free(inizio2); fflush(stdin); getchar(); } //FINE MAIN //IMPLEMENTAZIONE FUNZIONI Ls *crea_lista(Ls*inizio,int dato) //CREA LIFO L1 { Ls*p; p=(Ls*)malloc(sizeof(Ls)); p->info=dato; p->next=inizio; return(p); } void stampa(Ls*inizio) //STAMPA L1 { while(inizio) { printf(" %d ",inizio->info); inizio=inizio->next; }printf("\n"); } Ls*modifica(Ls*inizio1,Ls*inizio2) //MODIFICA L1 { Ls *aux1=inizio1; Ls *aux2=inizio2; do{inizio2=inizio2->next; aux2->next=aux1->next; aux1->next=aux2; aux2=inizio2; aux1=aux1->next->next; }while(inizio2!=NULL); return(inizio1); }

Rispondi quotando