7-1 de combinación de dos lista secuencia ordenada (20 puntos) (c ++)

Dos conocidos secuencias no descendente de la cadena de S1 y S2, la construcción de la nueva lista de funciones de diseño con el fin de la no fusionaron S1 y S3 después de S2 descendente.

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:
la salida combinada de la nueva lista no descendente, separados por espacios entre los números en una fila, no puede tener el espacio extra al final, si la nueva lista está vacía, NULL salida.

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

Muestra de la salida:
123 456 810

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

}LNode,*LinkList;
LinkList creat_list();
LinkList hb(LinkList L1,LinkList L2);
void print(LinkList L);
int main()
{
    LinkList L1=creat_list();
    LinkList L2=creat_list();
    LinkList L;
    L=hb(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 hb(LinkList L1,LinkList L2)
{
	
	LinkList r,L;
	r=L=L1;直接利用L1的头结点,不用另开空间了,最后释放L2的头结点,这里没有释放也对了
    LinkList p1=L1->next,p2=L2->next;
    while(p1&&p2)
    {
    if(p1->data<=p2->data)
    {
       r->next=p1;
	   r=p1; 
	   p1=p1->next;
    }
    else
    {
        r->next=p2;
	   r=p2; 
	   p2=p2->next;
    }
    }
    r->next=p1?p1:p2;//剩余的不用动,直接接上。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 3046

Supongo que te gusta

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