Untitled
unknown
c_cpp
a year ago
1.2 kB
8
Indexable
#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;
}Editor is loading...
Leave a Comment