/ * As duas listas ordenadas em uma nova lista ordenada e retorno. A nova lista é por todos os nós em um determinado mosaico composto de duas listas. * / #Include <stdio.h> #include <malloc.h> #include < string .h> #include <stdlib.h> #include <math.h> #include < string .h> #include <o iostream> typedef struct Node { int dados; struct Node * Avançar; } LinkList; vazio impressão (LinkList * L) { LinkList * = L-P> Em seguida, o tempo (P) { printf ( "% d "p-> dados); p = p-> próxima; } printf ( " \ n " ); } vazio criar (LinkList * & G, int str [], int n) { LinkList * r, * s; L = (LinkList *) malloc ( sizeof (LinkList)); R = G; int i; para (i = 0 ; i <n; i ++ ) { s = (LinkList *) malloc ( sizeof (LinkList)); s - > = dados str [i]; r-> next = s; r = s; } R -> next = NULL; } Vazio un (LinkList * & G, LinkList * LA, LinkList * LB) { G = (LinkList *) malloc ( sizeof (LinkList)); LinkList * aa = LA-> próxima, * pb = LB-> próxima, * r = L, * s; enquanto (pa && pb) { se (pa-> dados <PB-> dados) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> Dados = tros> dados; r -> próximos = s; r= s;s; pa = pa-> próxima; } Else { s = (LinkList *) malloc ( sizeof (LinkList)); s -> Dados = PB-> dados; r -> próximos = s; r = s; pb = PB-> próxima; } } Enquanto (aa) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> Dados = tros> dados; r -> próximos = s; r = pa = pa-> próxima; } Enquanto (pb) { s = (LinkList *) malloc ( sizeof (LinkList)); s -> Dados = PB-> dados; r -> próximos = s; r = s; pb = PB-> próxima; } R -> next = NULL; } Int main () { LinkList * L, LA *, * LB; int i, lena, LenB; scanf ( " % d " , & lena); int NUMA [lena]; para(i = 0 ; i <lena; i ++ ) { scanf ( " % d " , & NUMA [i]); } Criar (LA, numa, lena); scanf ( " % d " , & LenB); int dormente [LenB]; para (i = 0 ; i <LenB; i ++ ) { scanf ( " % d " , & dormente [i]); } Criar (LB, dormentes, LenB); un (L, LA, LB); imprimir (G); retornar 0 ; }