Se sabe que dos listas enlazadas individualmente ordenadas incrementalmente A y B almacenan un conjunto respectivamente. Diseñe un programa para implementar la operación de intersección A = A∩B de los dos conjuntos.
//Pseudocódigo
struct?node?*pA?=?pListAHead;?//Lista ordenada A
struct?node?*pB =? pListBHead;?//Lista ordenada B
struct?node?*pCHad?=?NULL;?//El encabezado de intersección de A y B
struct?node?*pCEnd ? =?NULL;?//El final de la intersección de A y B
mientras?(pA?!=?NULL?&&?pB?!=?NULL)
{ if?( pA->value?==?pB->value) {
//Igual y retrocedido al mismo tiempo
if?(pCEnd?==?NULL )
{ pCHead?=?new?node(); pCHead->valor?=?pA->valor; pCHead->siguiente?=?NULL;
} p>
else
{ pCEnd->siguiente?=?new?node(); pCEnd?=?pCEnd->siguiente; ; pCEnd->valor? =?pA->valor;
}
pA?=?pA->siguiente;
pB?=?pB- >next;
continue; } else?if?(pA->value?>?pB->value) {
//En comparación con el más pequeño, ¿B es más pequeño? B se mueve hacia atrás
pB?=?pB->next;
continue; } else {
//En comparación con el más pequeño, ¿A es más pequeño? A retrocede
pA?=?pA->siguiente }
}