oj习题8577 合并顺序表

8577 合并顺序表
若线性表中数据元素相互之间可以比较,且数据元素在表中按值递增或递减,则称该表为有序表。
编写算法,将两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C。

输入格式
第一行:顺序表A的元素个数
第二行:顺序表A的各元素(非递减),用空格分开
第三行:顺序表B的元素个数
第四行:顺序表B的各元素(非递减),用空格分开

输出格式 第一行:顺序表A的元素列表
第二行:顺序表B的元素列表
第三行:合并后顺序表C的元素列表

输入样例
5
1 3 5 7 9
5
2 4 6 8 10

输出样例
List A:1 3 5 7 9
List B:2 4 6 8 10
List C:1 2 3 4 5 6 7 8 9 10

#include<stdio.h>
#include
using namespace std;

int main(){
// setbuf(stdout, NULL);
int n,m; //n为数组a的长度,m为数组b的长度
int i=0,j=0,k=0;
int a[10000];
int b[10000];
int c[100000];

//输入A数组
scanf("%d",&n);
for (int l = 0; l < n; ++l) {cin>>a[l];
}
//输入B数组
scanf("%d",&m);
for (int l = 0; l < m; ++l) {cin>>b[l];
}
//对AB数组排序
while(i<n && j<m){if (a[i] <= b[j]){c[k++] = a[i++];}else{c[k++] = b[j++];}
}
//如果A数组还剩余,遍历放入
while(i < n) c[k++] = a[i++];
//如果B数组还剩余,遍历放入
while(j < m) c[k++] = b[j++];//输出数组A
cout<<"List A:";
for (int h = 0; h < n; h++) cout<<a[h]<<' ';
cout<<endl;//输出数组B
cout<<"List B:";
for (int h = 0; h < m; h++) cout<<b[h]<<' ';
cout<<endl;//输出数组C
cout<<"List C:";
for (int h = 0; h < n+m; h++) cout<<c[h]<<' ';
cout<<endl;

}

#include<stdio.h>
#include<malloc.h>
#include
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define ElemType int

typedef struct
{
int *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的容量(以sizeof(ElemType)为单位)
}SqList;

int InitList_Sq(SqList &L)
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));//返回首地址
if(!L.elem) return ERROR; //分配存储失败
L.length=0; //空表长度为0
L.listsize=LIST_INIT_SIZE; //初始存储容量
return OK;
}

int intput_Sq(SqList &L,int n)
{
int i,x;
for(i=0;i<n;i++)
{
scanf(“%d”,&x);
L.elem[i]=x;
L.length++;
}
return OK;
}

void MergeList_Sq(SqList LA,SqList LB,SqList &LC)
{
int *pa,*pb,*pc,*pa_last,*pb_last;
pa=LA.elem; pb=LB.elem; //指针pa和pb的初值分别指向两个表的第一个元素
LC.length=LA.length+LB.length; //新表长度为待合并两表的长度之和
LC.elem=new ElemType[LC.length]; //为合并后的新表分配一个数组空间
pc=LC.elem; //指针pc指向新表的第一个元素
pa_last=LA.elem+LA.length-1; //指针pa_last指向LA表的最后一个元素
pb_last=LB.elem+LB.length-1; //指针pb_last指向LB表的最后一个元素
while(pa<=pa_last && pb<=pb_last)
{ //两个表都非空
if(*pa<=*pb) *pc++=*pa++; //依次“摘取”两表中值较小的结点
else *pc++=*pb++;
}
while(pa<=pa_last) *pc++=*pa++; //LB表已到达表尾
while(pb<=pb_last) *pc++=*pb++; //LA表已到达表尾
}

void output_Sq(SqList L)//输出
{
int i;
for(i=0;i<L.length;i++)
{
printf("%d ",L.elem[i]);
}
}

int main()
{
SqList LA,LB,LC;
int a,b;
scanf(“%d”,&a);//输入LA表的元素个数;
InitList_Sq(LA);//创建LA表
intput_Sq(LA,a);//输入LA表元素

scanf("%d",&b);//输入LB表的元素个数;
InitList_Sq(LB);//创建LB表
intput_Sq(LB,b);//输入LB表元素InitList_Sq(LC);printf("List A:");
output_Sq(LA);
printf("\n");printf("List B:");
output_Sq(LB);
printf("\n");printf("List C:");
MergeList_Sq(LA,LB,LC);//合并两表
output_Sq(LC);
return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 服务器安全策略技巧:实施网络入侵防御系统

引言 在当今数字化时代,网络安全对于任何企业和个人都至关重要。特别是对于使用Linux服务器的用户来说,实施网络入侵防御系统是确保服务器安全的关键一步。本文将介绍一些Linux服务器安全策略技巧,帮助您保护服务器免受网络入侵的威胁。 1. 更新操作系统和软件 保持操作系…

KEPServerEX 6 之 GE Ethernet 连接FANUC ROBOT机器人实战

GE Ethernet Driver 连接FANUC ROBOT机器人 ---------------------------- GE Fanuc介绍 GE Fanuc是GE公司控制系统部门的一部分,成立于1998年。其主要业务涵盖工业自动化、控制系统、PLC和组态软件等领域。其产品可用于包括自动化、过程自动化、国防、汽车制造、通讯、医疗…

【linux】Linux管道的原理与使用场景

Linux管道是Linux命令行界面中一种强大的工具&#xff0c;它允许用户将多个命令链接起来&#xff0c;使得一个命令的输出可以作为另一个命令的输入。这种机制使得我们可以创建复杂的命令链&#xff0c;并在处理数据时提供了极大的灵活性。在本文中&#xff0c;我们将详细介绍Li…

LangChain.js 实战系列:如何统计大模型使用的 token 使用量和花费

&#x1f4dd; LangChain.js 是一个快速开发大模型应用的框架&#xff0c;它提供了一系列强大的功能和工具&#xff0c;使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。 统计调用大模型的 to…

Peter算法小课堂—浮点数危机

大家先想想下面这个代码运行结果&#xff1a; #include <bits/stdc.h> using namespace std; int main(){double x5.2;double y4.11.1;cout<<(x<y)<<endl;cout<<x-y<<endl;return 0; } 最终发现&#xff0c; &#xff1f;&#xff1f;&…

Unity之ShaderGraph如何实现瓶装水效果

前言 有一个场景在做效果时,有一个水瓶放到桌子上的设定,但是模型只做了个水瓶,里面是空的,所以我就想办法,如何做出来瓶中液体的效果,最好是能跟随瓶子有液体流动的效果。 如下图所示: 水面实现 水面效果 液体颜色设置 因为液体有边缘颜色和内里面颜色,所以要分开…

WEB渗透—PHP反序列化(十一)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

【力扣题解】P106-从中序与后序遍历序列构造二叉树-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P106-从中序与后序遍历序列构造二叉树-Java题解&#x1f30f;题目描述&#x1f4a1;题…

2024 通义语音 AI 技术图景,大模型引领 AI 再进化

自 1956 年达特茅斯会议上&#xff0c;约翰麦卡锡首次提出了“人工智能”这一术语。AI 在此后七十年的发展中呈现脉冲式趋势&#xff0c;每隔 5-10 年会出现一次技术革新和域定。在这一技术探索进程之中&#xff0c;预训练基础模型逐渐成为主流探索方向&#xff0c;受到学术界和…

C#下将点云数据保存为PLY格式

目前没有找到C#下将点云数据保存为PLY格式的库&#xff0c;查看了一下PLY格式&#xff0c;所以自己写了个方法实现点云数据保存PLY格式 public static string SavePointCloudToPLY(string No, float[] x, float[] y, float[] z){ string result "";Task.Run(() >…

基本运算器实验静态随机存储器实验

1.1 基本运算器实验 1. 实验记录 ①运算结果 首先按照实验指导书进行连线&#xff0c;然后打开试验箱电源&#xff0c;把A&#xff0c;B两个数存到寄存器中&#xff0c;然后改变s3 s2 s1 s0 的值&#xff0c;产生脉冲&#xff0c;观察对应的数据总线上的值以及两个标志位。 …

机器学习分类模型

机器学习常见分类模型及特点 机器学习常见分类模型优缺点 决策树模型 决策树&#xff08;Decision Tree&#xff09;是一类常见的机器学习方法&#xff0c;可应用于分类与回归任务&#xff0c;这里主要讨论分类决策树。决策树是基于树结构来进行决策的。下图是使用决策树来决定…

分布式技术之分布式发布订阅通信

文章目录 什么是发布订阅&#xff1f;发布订阅的原理Kafka 发布订阅原理及工作机制 发布订阅的应用 什么是发布订阅&#xff1f; 发布订阅的三要素是生产者、消费者和消息中心&#xff0c;生产者负责产生数据放到消息中心&#xff0c;消费者向消息中心订阅自己感兴趣的消息&am…

【详解】KMP算法——每步配图让你打穿KMP

介绍 什么是KMP算法&#xff1a; KMP算法主要运用串的模式匹配中&#xff08;简单来说就是在s串中找到一个与t串相等的子串&#xff0c;称为模式匹配&#xff09;例如s为abcdef&#xff0c;t为bcd&#xff0c;那么就是在s中找到bcd&#xff0c;并返回其在s中的首下标&#xf…

智慧园区物联综合管理平台基础功能简述

设备建模 平台支持设备建模功能, 用户可以根据业务的需要定制设备模型; 针对不同行业、 不同类型的终端进行建模和标准化, 模型包括设备基本信息和业务信息(包含属性、 事件、 服务), 并提供裸数据到标准模型的编解码转换能力内置常规设备模型模板, 支持自定义模板, 具…

如何正确看待养老金账户抵税

如何正确看待养老金账户抵税 一. 前言 ​ 最近国家推出了养老金抵税政策&#xff0c;核心条款为&#xff1a; 你存一笔钱到你的个人养老金账户&#xff0c;例如1000元&#xff1b;每年存入金额最高为12000元在税务结算时&#xff0c;这1000元会按照你的个人所得税税率返还给…

(JAVA)-(网络编程)-初始网络编程

网络编程就是在通信协议下&#xff0c;不同的计算机上运行的程序&#xff0c;进行的数据传输。 讲的通俗一点&#xff0c;就是以前我们写的代码是单机版的&#xff0c;网络编程就是联机版的。 应用场景&#xff1a;即时通信&#xff0c;网游对战&#xff0c;金融证券&#xf…

arm day7

开关中断控制 main.c #include "key_it.h" #include "uart.h" void delay(int ms) {int i,j;for(i0;i<ms;i){for(j0;j<2000;j);} }int main() {key2_it_config();key1_it_config();key3_it_config();all_led_init();char buf[128];gets(buf); whil…

Android APK未签名提醒

最近新建了一个项目&#xff0c;在build.gradle中配置好了签名&#xff0c;在执行打包的时候打出的包显示已签名&#xff0c;但是在上传市场的时候提示未签名。于是排查了好久&#xff0c;发现在build.gradle中配置的minsdk 24&#xff0c;会导致不使用V1签名&#xff0c;于是我…

Kubernetes技术与架构-集群管理

Kubernetes技术与架构提供支撑工具支持集群的规划、安装、创建以及管理。 数字证书 用户可以使用easyrsa、openssl、cfssl工具生成数字证书&#xff0c;在kubernetes集群的api server中部署数字证书用于访问鉴权 资源管理 如上所示&#xff0c;定义一个服务类service用于负…