问题描述:将两个有序顺序表合并为一个新的有序顺序表,并有函数返回结果顺序表。要求时间复杂度O(n)

算法设计思想:首先,按顺序取两个顺序表表头较小的结点存入新的线性表中直到某一个表遍历完;然后将还有剩余元素的表的剩下结点加到新的顺序表后。

代码及结果:

#include<stdio.h>
#include "线性表的顺序表示和实现.cpp"bool Merge(SqList &A,SqList &B,SqList &L){//将有序顺序表A和B合并成一个新的有序顺序表Lif(A.length + B.length > MaxSize) //两个表的结点总个数大于顺序表的最大长度return false;int i = 0,j = 0,k = 0;while(i < A.length && j < B.length){ //循环,将表头较小的结点存入线性表中 if(A.data[i] < B.data[j])ListInsert_Sq(L,++k,A.data[i++]);elseListInsert_Sq(L,++k,B.data[j++]);} while(i < A.length) //将还有剩余元素的表中的剩下结点加到L后 ListInsert_Sq(L,++k,A.data[i++]);while(j < B.length)ListInsert_Sq(L,++k,B.data[j++]); L.length = k;return true;
}int main(){//TestSqList A,B,L;int e;InitList_Sq(A);InitList_Sq(B);InitList_Sq(L);printf("依次输入要往线性表A中输入的元素:"); int i = 0;while(scanf("%d",&e)!=EOF){ListInsert_Sq(A,++i,e);}     printf("顺序表A中现有的数据为:");PrintList(A);printf("依次输入要往线性表B中输入的元素:"); i = 0;while(scanf("%d",&e)!=EOF){ListInsert_Sq(B,++i,e);}      printf("顺序表B中现有的数据为:");PrintList(B);printf("合并之后的顺序表为:");Merge(A,B,L);PrintList(L);return 0;}

将两个顺序表合并为一个新的顺序表相关推荐

  1. 将两个有序顺序表合并为一个新的有序顺序表MergeList_Sq

    将两个有序顺序表合并为一个新的有序顺序表,输出合并后的顺序表的所有数据元素: #include<stdio.h> #include<stdlib.h> #define LIST ...

  2. 将两个有序顺序表合并为一个新的有序顺序表

    将两个有序顺序表合并为一个新的有序顺序表 题目要求 基本思想 核心代码 完整代码(C++) 题目要求 将两个有序顺序表合并为一个新的有序顺序表,并由函数返回合并后的顺序表. 基本思想 非常经典的题目, ...

  3. 链表面试题3:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。

    链表面试题3:将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成 的. 首先我们的思想是将得一个链表和第二个链表的每个结点进行比较,谁小谁就插入到新链表的最后. ...

  4. C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    一.C++ 代码 class Solution { public:ListNode* insert(ListNode *res, int val) {if (res->val == INT_MA ...

  5. 顺序表:将两个有序表合并成一个新的有序顺序表

    题目:将两个有序表合并成为一个新的有序顺序表,并由函数返回结果顺序表. 算法思想:假设有AB两个顺序表,要使得合并后仍然有序,因此可以将AB中对应的数作比较,把较小的放入C中,比完之后将剩下的依次放入 ...

  6. oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...

    sql把两个表合并成一个新表的语句应该怎么写SQL SERVER: select * into 表3 from ( select 字段列表1 from 表1 union all select 字段列表 ...

  7. c语言将两个有序表合并为一个有序表,c语言实现两个有序链表的合并(代码示例)...

    本篇文章通过代码示例介绍一下使用c语言合并两个有序链表的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 教程推荐:<c语言教程视频> c语言实现两个有序链表的合并 ...

  8. 将两个单链表合并为一个单链表

    将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...

  9. wps合并所有sheet页_WPS怎么把几个工作表合并到一个工作表 - 卡饭网

    excel如何快速把多个工作表合并到一个excel表 excel如何快速把多个工作表合并到一个excel表 有这么一种情况,就是我们有很多张excel,而且excel表里面的公式基本一样,我们就想快速 ...

  10. 如何将多个Excel表合并成一个Excel表

    如何将多个Excel表合并成一个Excel表 每天需要和Excel办公软件打交道俄小伙伴,他们的电脑桌面上总是布满密密麻麻的Excel表,这样看上去非常的凌乱,其实我们完全可以将其中类别相同的Exce ...

最新文章

  1. 架构师之路 — 数据库设计 — 关系型数据库的迁移与版本控制
  2. day07 数据类型的内置方法(列表的内置方法)
  3. Python中从头开始实现神经网络 - 介绍
  4. .NET WebSocket 核心原理初体验
  5. Orleans入门例子
  6. mybatis 带分号批量sql_请查收,32 道 MyBatis 的高频面试题已答完
  7. ise生成msk文件的用处_ISE中上载程序出错,msk文件缺失有关问题
  8. 51Nod-2149 字符串出现位置【水题】
  9. FFmpeg源代码简单分析:libswscale的sws_getContext()
  10. ClassNotFoundException: com.lowagie.text.pdf.PdfGState
  11. TextView英文自动换行解决方法
  12. windows删除注册表(通用方法)
  13. 【读书摘抄】人类简史
  14. RSA加密算法-非对称加密算法的使用
  15. Linux系统访问Windows(本机)的Navicat数据库
  16. 如何根据边长数值计算六边形的面积
  17. 精通Java并发——张龙
  18. java 利用工具包Geotools实现不同坐标系之间坐标转换
  19. matlab中坐标轴的量程,origin中如何改变坐标量程
  20. 基于MindStudio的3D人体关键点检测

热门文章

  1. selenium: 登录QQ空间并破解滑块验证
  2. JS代码简单一段即可破解QQ空间删除说说
  3. Foxpro 简体转繁体的一种方式(代码)
  4. 彼得德鲁克《卓有成效的管理者》——阅读摘要
  5. 你了解实时3D渲染吗?实时渲染软件和应用场景科普来了
  6. Lomboz插件安装
  7. 联想服务器引导盘制作工具,联想(Lenovo)服务器System X 系列无法进入引导盘Server Guide的解决方案 - 王耍耍...
  8. android 请求https请求,Android 实现 HttpClient 请求Https
  9. win calc计算器妙用-功能键-编辑键-视图-命令键-脚本-迭代-连分数-批量和-批次高精度-内存-lisp-文本VS代码
  10. 微信小程序漏洞:可下载任意微信小游戏源代码(附赠源码)