Red de conocimiento informático - Conocimiento informático - Utilice el lenguaje C para fusionar dos listas lineales ordenadas en una lista lineal ordenada. ¡Urgente en línea! ! ! !

Utilice el lenguaje C para fusionar dos listas lineales ordenadas en una lista lineal ordenada. ¡Urgente en línea! ! ! !

El código ha sido escrito.

Probado y aprobado bajo VC.

#include lt; stdio.hgt;

int merge(int *a, int n1, int *b, int n2, int *s)

{

int i=0, j=0, k=0;

mientras(ilt; n1amp; amp; jlt; n2)

{ p>

if(a[i]gt;b[j]){

if(kamp;amp;s[k-1]==b[j])//allí son elementos duplicados

j

else

s[k ]=b[j ]; p> else{

if(kamp;amp;s[k-1]==a[i])//hay elementos duplicados

i;

else

s[k ]=a[i ];

}

}

while(ilt;n1){

if(kamp;amp;s[k-1]==a[i])

i ;

else

s[ k ]=a[i ];

}

mientras(jlt;n2){

si(kamp;amp;s[k-1 ]= =b[j])//hay elementos duplicados

j;

else

s[k]=b[j];

}

return k;

}

int main()

{

int a [100], b[100], s[200], n1, n2, i, n3;

printf("Ingrese el primer número de elementos de la matriz: "); p> scanf("d", amp; n1);

printf("Entrada d de elementos ascendentes (separados por espacio): ",

for(i= 0; ilt; n1; i )

scanf("d", amp; a[i]);

printf("Introduciendo el segundo número de elementos de la matriz: "); /p >

scanf("d", amp; n2);

printf("Ingrese d elementos ascendentes (separados por espacios): ",

for( i= 0;ilt;n2;i)

scanf("d",amp;b[i]);

n3=merge(a,n1,b,n2, s) ; //Fusiona los elementos de las matrices a y b en la matriz s (y elimina los duplicados) y devuelve el número de elementos en la matriz fusionada

printf("La matriz fusionada de elementos es :");

for(i=0;ilt;n3;i)

printf("d ",s[i]);

printf

("\n");

Devuelve 0

}

Se adjunta un conjunto de datos de prueba:

5

3 50 50 100 100

3

8 50 80

La salida es la siguiente: 3 8 50 80 100