Untitled
unknown
c_cpp
a month ago
1.8 kB
2
Indexable
Never
#include<stdio.h> #include<stdlib.h> typedef struct nodo_ { int num; struct nodo_ *next; } nodo_t; nodo_t* creaNodo(int num) { nodo_t* nuovo = (nodo_t*)malloc(sizeof(nodo_t)); nuovo->num = num; nuovo->next = NULL; return nuovo; } nodo_t* inseriscitesta(nodo_t* l, int num) { if (num == 0) return l; nodo_t* nuovo = creaNodo(num); nuovo->next = l; return nuovo; } int cercaElemento(nodo_t* l, int num) { nodo_t* corrente = l; while (corrente != NULL) { if (corrente->num == num) { return 1; } corrente = corrente->next; } return 0; } void stampaLista(nodo_t* l) { nodo_t* corrente = l; while (corrente != NULL) { printf("%d ", corrente->num); corrente = corrente->next; } printf("\n"); } void liberaLista(nodo_t* l) { nodo_t* corrente; while (l != NULL) { corrente = l; l = l->next; free(corrente); } } nodo_t* no_duplicati(nodo_t* l) { } nodo_t* intersezione(nodo_t* l1, nodo_t* l2) { } int main() { nodo_t* list1 = NULL; nodo_t* list2 = NULL; nodo_t* list3 = NULL; int num; printf("Inserisci la prima sequenza di numeri (terminata da 0):\n"); do { scanf("%d", &num); list1 = inseriscitesta(list1, num); } while (num != 0); printf("Inserisci la seconda sequenza di numeri (terminata da 0):\n"); do { scanf("%d", &num); list2 = inseriscitesta(list2, num); } while (num != 0); list1 = no_duplicati(list1); list2 = no_duplicati(list2); list3 = intersezione(list1, list2); printf("Intersezione delle due liste:\n"); stampaLista(list3); liberaLista(list1); liberaLista(list2); liberaLista(list3); return 0; }
Leave a Comment