7-2 intersección de dos lista secuencia ordenada (20 puntos) (c ++)

Dos conocidos secuencias no descendente de la cadena de S1 y S2, un constructo diseñado para la función de intersección S1 y S2 de la lista de nuevo S3.

Formato de entrada:
Introduzca dos líneas, se les da la secuencia no descendente compuesto de un número de enteros positivos cada fila, el final de la secuencia representada por -1 (-1 no pertenece a esta secuencia). intervalos digitales por un espacio.

Formato de salida:
salida de línea de intersección de dos secuencias de la secuencia de entrada, separado por un espacio entre los números, no el final de los espacios adicionales, si la nueva lista está vacía, NULL salida.

de entrada de la muestra:
. 1. 5 -1 2
2 10 -1 4. 5. 8.

Muestra de la salida:
25

#include<stdio.h>
typedef struct LNode{
    int data;
    struct LNode *next;

}LNode,*LinkList;
LinkList creat_list();
LinkList jj(LinkList L1,LinkList L2);
void print(LinkList L);
int main()
{
    LinkList L1=creat_list();
    LinkList L2=creat_list();
    LinkList L;
    L=jj(L1,L2);
    print(L);
    
    return 0;
}
LinkList creat_list()
{
    LinkList L=new struct LNode;
    L->next=NULL;
    int e;
    scanf("%d",&e);
    LinkList r=L;
    while(e!=-1)
    {
        LinkList s=new struct LNode;
        s->next=NULL;
        s->data=e;
        s->next=r->next;
        r->next=s;
        r=s;
        scanf("%d",&e);
    }
    return L;
}
LinkList jj(LinkList L1,LinkList L2)
{
	
    LinkList L=new struct LNode;
    L->next=NULL;
	LinkList r=L;//尾插法,设置尾指针
    LinkList p1=L1->next,p2=L2->next;
    while(p1&&p2)
    {
    if(p1->data==p2->data)
    {
        LinkList s=new struct LNode;
        s->next=NULL;
        s->data=p1->data;
        r->next=s;
	    r=s; 
	    p1=p1->next;
        p2=p2->next;
    }
    else if(p1->data<p2->data)
        p1=p1->next;
    else 
        p2=p2->next;
	}
    
		return L->next;
}

void print(LinkList L)
{
    if(!L) printf("NULL");
	int flag=0;
	LinkList p=L;
	while(p)
	{
		if(flag!=0) printf(" "); 
		printf("%d",p->data);
		p=p->next;
		flag=1;
	}
}
Publicado 33 artículos originales · ganado elogios 4 · Vistas 3045

Supongo que te gusta

Origin blog.csdn.net/qq_45728926/article/details/105191348
Recomendado
Clasificación