Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo fusionar dos listas secuenciales que todavía están ordenadas?

¿Cómo fusionar dos listas secuenciales que todavía están ordenadas?

//?El siguiente código de programa se utiliza para realizar operaciones de intersección y fusión en conjuntos; léalo atentamente.

#include?lt;iostreamgt;

#include?lt;iomanipgt;

#include?lt;time.hgt;

usando?namespace?std;

typedef?struct?link?{

short?num;

struct?link?*next;

}AGG;

AGG?*CreateList(int?n)?{? //Crea una lista vinculada con n nodos y devuelve el encabezado de la lista vinculada

AGG? *cabeza, *p, *q;

cabeza?=?p?=?nuevo?AGG;

cabeza-gt;num?=?0;

for(short?i?=?0;i?lt;?n;i )?{

q?=?new?AGG;

q-gt ;num ?=?(sin firmar)rand()??n? ?n/2;

p-gt; siguiente?=?q;

p?=?q;

p>

}

p-gt; siguiente?=?cabeza

retorno?cabeza

}

void ?RiseSort(AGG? *head)?{? //RiseSort

AGG?*p, *s, *pt;?

p? =?cabeza;

s?=?p-gt;siguiente;

while(p-gt;siguiente?! =?cabeza)?{

while(s-gt;siguiente ?! =?cabeza)?{

if(p-gt;siguiente-gt;num?gt;?s-gt;siguiente-gt;num)?{

pt ?=?p-gt;siguiente;

p-gt;siguiente?=?s-gt;siguiente;

s-gt;siguiente? =?p-gt;siguiente -gt; siguiente;

p-gt; siguiente-gt; siguiente

}

más? s?=?s-gt ;siguiente;

}

p?=?p-gt;siguiente;

s?=?p-gt; siguiente;

}

}

}

}