SHAOXIAOJ正在加载中...

1639: 线性表-两个有序表的合并(链式结构)

金币值:2 定数:10 时间限制:1.000 s 内存限制:128 M
正确:6 提交:8 正确率:75.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-线性表

题目描述

已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC且LC中的数据元素仍按值非递减有序列排列。

#include "stdio.h"
#include "stdlib.h"

typedef int ElemType;

typedef struct Node {
	ElemType data;
	struct Node *next;
} LNode,*linkList;
void initList(linkList &L);
void inputList(linkList L);
void printList(linkList L);
void mergeList(linkList LA,linkList LB,linkList LC);

int main(void) {
	linkList LA,LB,LC;
	initList(LA);
	inputList(LA);
	initList(LB);
	inputList(LB);
	initList(LC);
	mergeList(LA,LB,LC);
	printList(LC);
	return 0;
}

void initList(linkList &L) {
	L=new LNode;
	L->next=NULL;
}

void inputList(linkList L) {//尾插入法建立链表 
	int n;
	linkList p,tail;
	tail=L;
	scanf("%d",&n);
	for(int i=0; i<n; i++) {
		p=new LNode;
		scanf("%d",&p->data);
		p->next=NULL;
		tail->next=p;
		tail=p;
	}
}

void printList(linkList L) {
	linkList p=L->next;
	while(p!=NULL) {
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
}

/*仅提交以下代码*/
void mergeList(linkList LA,linkList LB,linkList LC){
	linkList pa,pb,pc;
	pa=LA->next; pb=LB->next; pc=LC;
	while(________________){
		if(__________________){
			
		}
		else{
		}
	}
	pc->next=pa!=NULL?pa:pb;
	delete LA;
	delete LB;
}

输入格式

输入数据共4行:
第1行:LA的数据元素的数目
第2行:LA中的各数据元素,以空格间隔
第3行:LB的数据元素的数目
第4行:LB中的各数据元素,以空格间隔

输出格式

依次输出LC中各数据元素的值。

输入样例    复制

4
1 2 6 7
3
1 3 5

输出样例    复制

1 1 2 3 5 6 7