#include #include #define Vacia() (Base == NULL)?TRUE:FALSE typedef enum {FALSE=0,TRUE=1} boolean; typedef int TipoDato; struct SEle{ TipoDato valor; struct SEle *sig; }; typedef struct SEle Elemento; Elemento *Lpar = NULL; Elemento *Limpar = NULL; Elemento * InsertarPrincipio ( Elemento *Base, TipoDato Dato ) { Elemento *paux; paux = malloc( sizeof(Elemento) ); paux->sig = Base; paux->valor = Dato; Base = paux; return Base; } void VerLista ( Elemento *Base ) { Elemento *paux; printf("\n LISTA"); paux = Base; while ( paux != NULL ) { printf("->%d ",paux->valor); paux = paux->sig; } } /* EL elemento cedido pasa a ser el primero de la otra lista */ boolean CederParImpar ( TipoDato dato ) { Elemento *pant, *paux; boolean result = FALSE; printf("Cesi¢n :%d\n",dato); /* Supongo que ninguna de los dos est  vacia */ /* Si es el primero de la lista de pares */ if ( Lpar->valor == dato ) { paux = Lpar; Lpar = Lpar->sig; paux->sig = Limpar; Limpar = paux; result = TRUE; } else { pant = Lpar; paux = Lpar->sig; while ( paux->sig != NULL ) { if ( paux->valor == dato ) { break; } pant = paux; paux = paux->sig; } if ( paux->valor == dato ) { pant->sig = paux->sig; paux->sig = Limpar; Limpar = paux; result = TRUE; } } return result; } main() { TipoDato dato; // Relleno la primera lista con número impares Limpar = InsertarPrincipio(Limpar,1); Limpar = InsertarPrincipio(Limpar,3); Limpar = InsertarPrincipio(Limpar,5); Limpar = InsertarPrincipio(Limpar,7); Limpar = InsertarPrincipio(Limpar,9); VerLista(Limpar); getch(); // Relleno la seguna lista con número pares Lpar = InsertarPrincipio(Lpar, 2); Lpar = InsertarPrincipio(Lpar, 4); Lpar = InsertarPrincipio(Lpar, 6); Lpar = InsertarPrincipio(Lpar, 8); Lpar = InsertarPrincipio(Lpar,10); VerLista(Lpar); getch(); // Cambio elemento de la lista de pares a la lista de impares CederParImpar(2); VerLista(Limpar); VerLista(Lpar); getch(); CederParImpar(10); VerLista(Limpar); VerLista(Lpar); getch(); CederParImpar(6); VerLista(Limpar); VerLista(Lpar); getch(); CederParImpar(32); VerLista(Limpar); VerLista(Lpar); getch(); }