Untitled

mail@pastecode.io avatar
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