#include #include #include typedef struct lista{ int num; struct lista *sig; }nodo; typedef struct lista2{ int num; struct lista2 *sig; }nodo2; typedef struct lista3{ int num; struct lista3 *sig; }nodo3; void cargar(nodo *pt); void mostrar(nodo *pt); void cargar2(nodo *pt, nodo2 *pt2); void mostrar2(nodo2 *pt2); void cargar3(nodo *pt, nodo3 *pt3); void mostrar3(nodo3 *pt3); nodo2 *eliminar(nodo2 *pt2,nodo3 *pt3); void main(){ nodo *prim; nodo2 *prim2; nodo3 *prim3; prim=(nodo *)malloc(sizeof(nodo)); prim2=(nodo2 *)malloc(sizeof(nodo2)); prim3=(nodo3 *)malloc(sizeof(nodo3)); clrscr(); cargar(prim); printf("\n"); mostrar(prim); cargar2(prim,prim2); printf("\n"); mostrar2(prim2); cargar3(prim,prim3); printf("\n"); mostrar3(prim3); prim2=eliminar(prim2,prim3); printf("\n"); mostrar2(prim2); getch(); } void cargar(nodo *registro){ printf("\nIngrese numero: "); scanf("%d",®istro->num); if(registro->num==0) registro->sig=NULL; else { registro->sig=(nodo *)malloc(sizeof(nodo)); cargar(registro->sig); } } void mostrar(nodo *registro){ if(registro->sig!=NULL){ printf("\n%d",registro->num); mostrar(registro->sig); } } void cargar2(nodo *registro, nodo2 *registro2){ while(registro->sig!=NULL){ if(registro->num%2==0){ registro2->num=registro->num; registro2->sig=(nodo2 *)malloc(sizeof(nodo2)); registro2=registro2->sig; registro2->sig=NULL; } registro=registro->sig; } } void mostrar2(nodo2 *registro2){ if(registro2->sig!=NULL){ printf("\n%d",registro2->num); mostrar2(registro2->sig); } } void cargar3(nodo *registro, nodo3 *registro3){ while(registro->sig!=NULL){ if(registro->num%2!=0){ registro3->num=registro->num; registro3->sig=(nodo3 *)malloc(sizeof(nodo3)); registro3=registro3->sig; registro3->sig=NULL; } registro=registro->sig; } } void mostrar3(nodo3 *registro3){ if(registro3->sig!=NULL){ printf("\n%d",registro3->num); mostrar3(registro3->sig); } } nodo2 *eliminar(nodo2 *registro2,nodo3 *registro3){ nodo2 *temp; nodo2 *temp2; if(registro2->num%registro3->num==0){ temp=registro2; registro2=registro2->sig; free(temp); } else while(registro2->sig!=NULL&®istro3->sig!=NULL&®istro2->num%registro3->num==0){ temp=registro2->sig->sig; free(registro2->sig); registro2->sig=temp; } } return registro2; }