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