包括定义的链表,插入数据,及输出打印

#include <iostream>
#include <vector>
#include <numeric>
#include<algorithm>
using namespace std;
struct Node {int x;Node* next;Node(int x1, Node* next1) {x = x1;next = next1;}
};
//--两个有序链表合并-假设排列方式为从小到大--
Node* sortHead(Node* head1, Node* head2) {if (head1 == NULL) return head2;if (head2 == NULL) return head1;Node* returnHead = head1->x < head2->x ? head1 : head2;//新链表的头节点Node* myPos = returnHead;  //辅助指针,每次移动if (head1->x < head2->x) {head1 = head1->next;}elsehead2 = head2->next;while (1) {if (head1 == nullptr){myPos->next = head2;break;}else if (head2 == nullptr) {myPos->next = head1;break;}if (head1->x < head2->x) {myPos->next = head1;myPos = head1;head1 = head1->next;}else {myPos->next = head2;myPos = head2;head2 = head2->next;}}return returnHead;
}
int main() {Node* head1, * head2, * p, * q;   //head标记头节点,p为生成新节点,q记前一个节点Node* t;int n, a;        //n为链表的长度//a为每个结点的数据cin >> n;head1 = NULL;     //开始指针为NULLq = NULL;for (int i = 0; i < n; i++) {cin >> a;p = (Node*)malloc(sizeof(Node));p->x = a;p->next = NULL;if (head1 == NULL) {head1 = p;}else {q->next = p;}q = p;}//--------------------------------//--------------------------------//--------------------------------//--------------------------------head2 = NULL;     //开始指针为NULLq = NULL;for (int i = 0; i < n; i++) {cin >> a;p = (Node*)malloc(sizeof(Node));p->x = a;p->next = NULL;if (head2 == NULL) {head2 = p;}else {q->next = p;}q = p;}Node* returnHead = sortHead(head1, head2);t = returnHead;while (t != NULL) {cout << t->x;          //打印合并后的链表t = t->next;}return 0;
}

c++实现两有序链表合并成一个新的有序链表相关推荐

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

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

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

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

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

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

  4. 将两个递增的有序链表合并成一个递增的有序链表(CPP版)

    要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间,表中不允许由重复的数据 #include<iostream> using namespace std; //自定义链表的 ...

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

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

  6. Coding:两个从大到小的有序链表合并成一个从小到大有序链表

    要求 请实现一个函数,把两个从大到小的有序链表合并成一个链表,新的链表是一个从小到大的有序链表. struct list {int value;list* next; }; list * merge ...

  7. 将两个有序链表合并成一个链表

    代码实现功能如下:将两个有序链表合并成一个有序链表. 具体思路如下:首先自己调用链表的创建函数,手动创建两个有序链表,链表的创建以输入0作为截止标志.创建好两个有序链表之后,将两个链表的头结点进行比较 ...

  8. 两个有序链表合并成一个有序的单链表

    将这两个有序链表合并成一个有序的单链表 要求结果链表仍使用原来两个链表的存储空间,不另外占用其它的存储空间 表中允许有重复数据 算法描述 (1)定义一个合并后的指针pc指向La表的头结点.由于要求不占 ...

  9. 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc

    #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...

最新文章

  1. 是你写程序时的样子吗? | 每日趣闻
  2. STC15分时内核中函数指针的使用问题
  3. gan 总结 数据增强_[NLP]聊一聊,预处理和数据增强技术
  4. 创建型模式--工厂方法模式
  5. 详解 Spring 3.0 基于 Annotation 的依赖注入实现--转载
  6. 日常方便使用的Python脚本实现
  7. 百度顶会论文复现(3):视频分类综述
  8. java类与对象实验报告心得体会_Java类与对象实验报告.doc
  9. pandas分组计算平均值_pandas索引,分组计算
  10. 几种关系型数据库比较
  11. python爬虫代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
  12. 公众号内打开提示404_微信公众号文章内如何插入视频?
  13. 常用参考文献GB/T 7714, MLA ,APA格式区别
  14. 【计算广告】浅谈广告归因
  15. slack 时钟_【基础知识】时序(Slack、Setup、Hold、Jitter、Skew、亚稳态)
  16. html5写自我介绍,一分钟标签式自我介绍4篇
  17. 佐治亚理工的网上计算机硕士,佐治亚理工计算机硕士读几年?
  18. 第三节:原生数据类型使用陷阱 Pitfall of Primitive Data Type
  19. kindle如何导入azw3格式的电子书
  20. 南大地球科学能转计算机类吗,南京大学地球科学系

热门文章

  1. 做一名开源社区的扫地僧——从Bug report到Google Summer of Code(GSoC):从200个bug到5000美金
  2. java.util包详解
  3. forward(转发)和redirect(重定向)有什么区别
  4. Java中byte与short、int、long互转(包含大端,小端)
  5. 24 Three.js的环境光源THREE.AmbientLight
  6. js正则表达式之 (?=) (?!)
  7. 二维数组的转置,并将其按列和行从小到大排列(Java实现)
  8. docfx 做一个和微软一样的文档平台
  9. 大数据时代的 3V + 3高
  10. MySQL数据库web客户端管理工具软件