/ * Las dos listas ordenadas en una nueva lista ordenada y retorno. La nueva lista no es de todos los nodos en un mosaico dado compuesta de dos listas. * / #Include <stdio.h> #include <malloc.h> #include < cadena .h> #include <stdlib.h> #include <math.h> #include < cadena .h> #include <iostream la> typedef struct nodo { int datos; struct nodo * siguiente; } LinkList; nula de impresión (LinkList * L) { LinkList * = L-P> A continuación, el tiempo (P) { printf ( "% d "p-> datos); p = p-> siguiente; } printf ( " \ n " ); } void crear (LinkList * & L, int str [], int n) { LinkList * r, * s; L = (LinkList *) malloc ( sizeof (LinkList)); r = L; int i; para (i = 0 ; i <n; i ++ ) { s = (LinkList *) malloc ( sizeof (LinkList)); s - > data = str [i]; r-> siguiente = s; r = s; } R -> siguiente = NULL; } Void ONU (LinkList * & L, LinkList * LA, LinkList * LB) { L = (LinkList *) malloc ( sizeof (LinkList)); LinkList * pa = LA-> siguiente, * pb = LB-> siguiente, * r = L, * s; mientras que (pa && pb) { si (PA-> datos <PB-> datos) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> data => tros de datos; r -> próximos = s; r= s;s; pa = PA-> siguiente; } Demás { s = (LinkList *) malloc ( sizeof (LinkList)); s -> data => Pb- datos; r -> próximos = s; r = s; pb = PB-> siguiente; } } Mientras que (pa) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> data => tros de datos; r -> próximos = s; r = pa = PA-> siguiente; } Mientras que (pb) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> data => Pb- datos; r -> próximos = s; r = s; pb = PB-> siguiente; } R -> siguiente = NULL; } Int main () { LinkList * L *, LA, * LB; int i, lena, LongitudB; scanf ( " % d " , y lena); int numa [lena]; para(i = 0 ; i <lena; i ++ ) { scanf ( " % d " , y Numa [i]); } Crear (LA, Numa, lena); scanf ( " % d " , y LongitudB); int entumecido [LongitudB]; para (i = 0 ; i <LongitudB; i ++ ) { scanf ( " % d " , y entumecido [i]); } Crear (LB, entumecido, LongitudB); ONU (L, LA, LB); imprimir (L); volver 0 ; }