#include<stdio.h>
#include<malloc.h>  typedef int ElemType;
typedef int status;
# define LIST_INIT_SIZE 100
# define OK 1
# define OVERFLOW -1typedef struct{ElemType *elem;int length;int listsize;
} SqList;//初始化线性表
status InitList_Sq(SqList *L){L-> elem  = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType)) ;if(!L->elem) exit(OVERFLOW);L->length = 0;L->listsize = LIST_INIT_SIZE;return OK;
}//创建有序表并为其赋值
void Create_sq(SqList *L){int i,n;printf("创建一个有序表!\n");printf("输入有序表里的元素个数:");scanf("%d",&n);L->length = n;for(i=0;i < n;i++){printf("输入第%d个元素的值:",i+1);scanf("%d",&L->elem[i]);printf("\n");}
}//打印有序表
void Disp_Sq(SqList L){int i,n;n = L.length;for(i=0;i<n;i++){printf("%5d",L.elem[i]);}printf("\n");
}//合并有序表
void Combine(SqList *la,SqList lb){int i = la->length - 1,j = lb.length - 1;       while(i >= 0 && j >= 0){if(la->elem[i] <= lb.elem[j]){if (!la->elem[i + 1]){               la->elem[i + 1] = lb.elem[j];}else{for (int k = la->length - 1; k >= i+1; --k){la->elem[k +1] = la->elem[k];}la->elem[i + 1] = lb.elem[j];}la->length++;j--;                }else{i--;}}
}main(){SqList sla;SqList slb;InitList_Sq(&sla);InitList_Sq(&slb);Create_sq(&sla);Create_sq(&slb);Combine(&sla,slb);Disp_Sq(sla);
}

运行结果:

C语言实现合并两个有序(从小到大)顺序表为一个顺序表相关推荐

  1. C语言怎么合并两个有序链表

    C语言合并两个有序链表的方法:拼接指定的两个有序链表的所有节点即可.例如两个有序链表分别为[1->2->4]和[1->3->4],合并后的有序链表为[1->1->2 ...

  2. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现

    合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...

  3. LeetCode 21.23.剑指 Offer II 078. 合并两个有序链表 | C语言版

    LeetCode 21. 合并两个有序链表 | C语言版 LeetCode 21. 合并两个有序链表 题目描述 解题思路 思路一:使用栈 代码实现 运行结果 参考文章: 思路二:减少遍历节点数 代码实 ...

  4. 合并两个有序链表 C语言 leetcode21题

    目录 1.题目来源 2.函数介绍 3.问题示例 4.函数实现 代码 1.题目来源 21. 合并两个有序链表 - 力扣(LeetCode)https://leetcode.cn/problems/mer ...

  5. 简单记录牛客top101算法题(初级题C语言实现)判断回文字符串 反转字符串 合并两个有序的数组

    1. 判断是否为回文字符串   给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文.如果是回文请返回true,否则返回false.   字符串回文指该字符串正序与其逆序逐字符一致. // ...

  6. LeetCode题组:第21题-合并两个有序链表

    1.题目:合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出: ...

  7. 两个有序链表序列的交集_LeetCode | 21.合并两个有序链表

    点击上方蓝字关注我们 1.LeetCode | 2.两数相加 2.LeetCode | 206.反转链表 3.LeetCode | 1.两数之和 4.LeetCode | 703.数据流中的第K大元素 ...

  8. LeetCode--88.合并两个有序数组(插入法,排序法)

    合并两个有序数组(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python语言实现 1. 题目描述 难度:简单 2. 题目分析 这道题比较简单,实现方法有两种: 插入 ...

  9. C++合并两个有序数组成一个有序数组时间复杂度最小的解法

    简单来说,时间复杂度最低为O(m+n)== m和n指的是两个有序数组的大小 代码实现: //输出结果 template<class T> void PrintVecResult(vecto ...

最新文章

  1. 2018.1.9 区块链论文翻译
  2. 《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5)
  3. jvm系列(十):如何优化Java GC「译」
  4. php动态网页转换成html,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
  5. 【实验】DHCP、NAT配置案例
  6. easyexcel 导出 代码翻译converter_啥?这么简单高效的Excel 导出工具都不知道? 还不快来看!
  7. C语言已排序链表插入新节点保持排序状态(附完整源码)
  8. Web开发-Django初识及实战
  9. 带中文索引的ListView 仿微信联系人列表
  10. Android之进程与线程的讲解
  11. 阿里大神最佳总结Flutter进阶学习笔记,技术详细介绍
  12. React开发(252):react项目理解 ant design spining加载中
  13. linux进程状态浅析
  14. python增删改查
  15. matlab流量结构分析,科学网-分享求解“结构分解分析(SDA)”各项均值的MATLAB程序-计军平的博文...
  16. 从零开始刷Leetcode——数组(189.217.219)
  17. xshell远程控制(连接)两个VMware同时启动的Linux操作系统
  18. SLAM精度测评(绘制比较相机轨迹)- EVO
  19. 【人脸识别】基于matlab GUI FISHER人脸识别【含Matlab源码 605期】
  20. Cat8八类网线是什么?与Cat5、Cat6、Cat7网线的区别?

热门文章

  1. 招沿实业二十四条理财常识让你越来越富
  2. leaflet地图原理_使用Leaflet创建地图拓扑图
  3. [Android开发练习1] 绘制国旗
  4. 在 Tegra K1 上用opencv4tegra 不包含的功能以及ROS使用OpenCV问题
  5. keychron凭什么高效学习快速码字
  6. 手机上如何把录音转换成文字
  7. 浅析IPTV盒子和OTT盒子的差别,如何选择?
  8. html文件引用上级目录下的图片,显示不出图片?
  9. 【240行拿下】基于C语言 实现通讯录管理系统 带文件保存及读取功能
  10. JAVASCRIPT函数组合:有什么大不了的?