Untitled

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