#include <stdio.h> #include <stdlib.h> struct nodo { int N; struct nodo *sig; }; struct nodo *L1, *L2, *LR; int N1[] = {7, 8, 3, 24}; int N2[] = {24, 3}; struct nodo* Guarda(struct nodo *L, int dato) { struct nodo *new = (struct nodo*)malloc(sizeof(struct nodo)); new->N = dato; new->sig = NULL; if ( !L ) L = new; else { new->sig = L; L = new; } return L; } void Muestra(struct nodo *L2) { while(L2) { printf("%d\n", L2->N); L2 = L2->sig; } } struct nodo* Interseccion(struct nodo *L1, struct nodo *L2) { struct nodo *L = L2; while(L1) { L2 = L; while(L2) { if (L1->N == L2->N) LR = Guarda(LR, L1->N); L2 = L2->sig; } L1 = L1->sig; } return LR; } void inicio() { int i=0, Tam = sizeof(N1) / sizeof(int); for (i = 0; i<Tam; i++) L1 = Guarda(L1, N1[i]); Tam = sizeof(N2) / sizeof(int); for (i = 0; i<Tam; i++) L2 = Guarda(L2, N2[i]); LR = Interseccion(L1, L2); Muestra(LR); } int main(int k, char **a) { L1 = L2 = LR = NULL; inicio(); }