swust-oj 941 有序顺序表的合并操作的实现

原创 2018年04月16日 20:18:13

有序顺序表的合并操作的实现
1000(ms)
10000(kb)
2614 / 13893
已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)

输入

输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度;
第二行为n个自然数构成的非递减顺序线性表;
第三行为自然数m,表示第二个非递减顺序线性表的长度;
第四行为m个自然数构成的非递减顺序线性表。

输出

输出:用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。

样例输入

2
1 3
3
2 3 6

样例输出

1 2 3 3 6 

吐舌头AC:

 

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 100
typedef struct Sqlist
{
 int data[MaxSize];
 int length;
}Sqlist;
//初始化顺序表
void initList(Sqlist *&L){
 L=(Sqlist *)malloc(sizeof(Sqlist));
 L->length=0;
}
//创建顺序表
void creatList(Sqlist *&L){
 int n,i,e;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  scanf("%d",&e);
  L->data[i]=e;
  L->length++;
 }
}
//非递减插入排序
void mergeList(Sqlist *&L1,Sqlist *&L2,Sqlist *&L3)
{
 initList(L3);
 int i=0,j=0;
 while(i<L1->length&&j<L2->length)
 {
  if(L1->data[i]<L2->data[j])
   L3->data[L3->length++]=L1->data[i++];
  else
   L3->data[L3->length++]=L2->data[j++];
 }
 while(i<L1->length)
  L3->data[L3->length++]=L1->data[i++];
 while(j<L2->length)
  L3->data[L3->length++]=L2->data[j++];
}
//输出顺序表
void display(Sqlist *&L)
{
 int i=0;
 while(i<L->length)
  printf("%d ",L->data[i++]);
}
int main()
{
 Sqlist *L1,*L2,*L3;
 initList(L1);
 creatList(L1);
 initList(L2);
 creatList(L2);
 mergeList(L1,L2,L3);
 display(L3);
 return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Wutongyewan/article/details/79965796

合并线性表

描述 已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。 输入 输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度,第二行为n个自然数构成的非递减顺序线...
  • a997930294
  • a997930294
  • 2013-08-05 20:14:45
  • 1137

算法与数据结构--实现线性表的合并操作(合并后按非递减排列)--算法2.6

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:顺序表的合并...
  • leihengxin
  • leihengxin
  • 2012-09-18 21:04:45
  • 5143

有序顺序表的合并操作的实现

已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)Description输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度; 第二行为n个自然数构成的非递减...
  • qq_38619366
  • qq_38619366
  • 2018-01-02 15:34:25
  • 163

两个有序顺序表合并为有序表 C++实现

  • 2008年12月07日 19:03
  • 977B
  • 下载

非递减顺序表的合并

//破坏原有的链表实现合并: void MergeList(List La,List Lb,List &Lc) { ListClear(Lc); ElemType ea,eb; whi...
  • hixiaowen
  • hixiaowen
  • 2012-03-11 12:24:25
  • 783

两个有序顺序表合并

这是在做数据结构考研题目时遇到的题。 在这里记录一下,其中有上网参考大家的代码。 题目如下: /* 题目:编写算法,将两个非递减有序顺序表A和B合成一个新的非递减有序顺序表C。 已知顺序表A和B的元素...
  • qs52955339
  • qs52955339
  • 2016-07-07 11:52:09
  • 2077

【实验】两个有序顺序表的合并

数据结构上机实验。 实验要求: 写出——>> Status initlist(sqlist &L) Status listinsert( sqlist &L,  int i,  int e )...
  • u013487796
  • u013487796
  • 2015-09-23 10:05:47
  • 3881

线性表

数序表的基本操作有12个,通过对基本操作有机的组合,可以对线性表进行较复杂的处理。List是抽象的线性表类型,并不是稍后将要介绍的具体的线性表存储结构。SqList是顺序存储结构的线性表,LinkLi...
  • DreamPoem
  • DreamPoem
  • 2017-09-29 00:32:14
  • 369

Head First 线性表

目录 1、前言 2、
  • u013604612
  • u013604612
  • 2014-09-15 15:34:19
  • 836
收藏助手
不良信息举报
您举报文章:swust-oj 941 有序顺序表的合并操作的实现
举报原因:
原因补充:

(最多只允许输入30个字)