Untitled
unknown
c_cpp
19 days ago
1.2 kB
3
Indexable
Never
#include<stdio.h> #include<stdlib.h> typedef struct nodo_{ int num; struct nodo_ *next; }nodo_t; nodo_t* no_duplicati(nodo_t* l){ if(l==NULL){ return NULL; } nodo_t* corrente=l; nodo_t* prev=NULL; while(corrente!=NULL){ while(corrente->next!=NULL){ if(corrente->next->num==corrente->num){ prev->next= corrente->next->next; nodo_t* tmp= corrente->next; free(tmp); } prev=corrente->next; corrente->next=corrente->next->next; } corrente=corrente->next; } return l; } nodo_t* intersezione(nodo_t* l1, nodo_t l2){ if(l1==NULL || l2==NULL){ return NULL; } nodo_t* curr1=l1; nodo_t* curr2=l2; nodo_t* l3; while(curr1!=NULL){ while(curr2!=NULL){ if(curr1->num==curr2->num){ l3=crealista(curr1); } curr2=curr2->next; } curr1=curr1->next; } return l3; } int main(){ nodo_t* list1=NULL; nodo_t* list2=NULL; nodo_t* list3=NULL; int num; do{ scanf("%d", &num); list1 = inseriscitesta(list1, num); } while(num!=0); do{ scanf("%d", &num); list2 = inseriscitesta(list2, num); } while(num!=0); list1=no_duplicati(list1); list2=no_duplicati(list2); list3=intersezione(list1, list2); return 0; }
Leave a Comment