链表的合并c++

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: #include <iostream>#include <string>using namespace std; typedef struct LNode{ int date; //节点的数据域 struct LNode *next; //节点的指针域 }LNode,*LinkList; // LinkList 为指向结构体LNode的指针类型 void mergelinklist(LinkList La,LinkList Lb,LinkList &Lc) { LinkList p,q,r; p = La->next; //p指向la
#include <iostream>
#include <string>
using namespace std;
typedef struct LNode
{ 
  int date;     //节点的数据域 
  struct LNode *next;   //节点的指针域  
}LNode,*LinkList;        // LinkList 为指向结构体LNode的指针类型
void mergelinklist(LinkList La,LinkList Lb,LinkList &Lc) 
{
  LinkList p,q,r;
  p = La->next;  //p指向la的第一个元素 
  q = Lb->next;  //p指向Lb的第二个元素 
  Lc = La ;       //Lc指向La头结点 
  r = Lc;        //r指向Lc的尾部
  while(p&&q)
  {
    if(p->date<=q->date)
    {
      r->next = p;
      r = p;
      p = p->next;
    }
    else 
    {
      r->next = q;
      r = q;
      q = q->next;
    }
  } 
  if(p)  r->next = p;   //判断p是否仍然存在 
  else   r->next = q;
  delete Lb; 
}
void listprint_L(LinkList L)  //单链表的输出 
{
  LinkList p;
  p = L->next;
  while(p)
  {
    cout<<p->date<<"\t";
    p = p->next;
  } 
  cout<<endl;
}
void CreateList_R(LinkList &L)   //尾插法创建单链表 (尾插法是正序建表) 
{
    //输入n个元素,建立到头结点的单链表
    int n ;
    LinkList  s, r;
    L = new LNode;
  L->next = NULL;  //先建立一个带头结点的空链表 
  r = L;           //尾指针r指向头结点  (就他自己)
    cout<<"请输入元素个数 n: "<<endl;
  cin>>n;
  cout<<"请依次输入n个元素:"<<endl;
  cout<<"前插法创建单链表..."<<endl;
  while(n--)
  { 
    s = new LNode ;       //生成新结点s
    cin>>s->date;          //输入元素赋值给新结点的数据域
      s->next = NULL;
      r->next = s;           //将新结点插s插入尾结点*r之后
    r = s;                 //r指向新的尾结点s 
    }
}
int main()
{
  LinkList La,Lb,Lc;
  CreateList_R(La);
  CreateList_R(Lb);
  mergelinklist(La,Lb,Lc);
  listprint_L(Lc);
}
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
存储 C++
C++的list-map链表与映射表
```markdown C++ 中的`list`和`map`提供链表和映射表功能。`list`是双向链表,支持头尾插入删除(`push_front/push_back/pop_front/pop_back`),迭代器遍历及任意位置插入删除。`map`是键值对集合,自动按键排序,支持直接通过键来添加、修改和删除元素。两者均能使用范围for循环遍历,`map`的`count`函数用于统计键值出现次数。 ```
34 1
|
5月前
|
存储 C++
C++的list-map链表与映射表
这篇教程介绍了C++中`list`链表和`map`映射表的基本使用。`list`链表可通过`push_front()`、`push_back()`、`pop_front()`和`pop_back()`进行元素的添加和删除,使用迭代器遍历并支持在任意位置插入或删除元素。`map`是一个键值对的集合,元素自动按键值排序,可使用下标操作符或`insert()`函数插入元素,通过迭代器遍历并修改键值对,同时提供`count()`方法统计键值出现次数。教程中包含多个示例代码以帮助理解和学习。
44 2
|
5月前
|
存储 人工智能 测试技术
每日练习之排序——链表的合并;完全背包—— 兑换零钱
每日练习之排序——链表的合并;完全背包—— 兑换零钱
29 2
|
6月前
|
算法 C++
c++算法学习笔记 (13) 链表
c++算法学习笔记 (13) 链表
|
6月前
23. 合并 K 个升序链表
23. 合并 K 个升序链表
53 3
|
5月前
|
C++ Python
UE C++ 链表
UE C++ 链表
|
5月前
|
C++ 容器
【C++进阶】深入STL之list:高效双向链表的使用技巧
【C++进阶】深入STL之list:高效双向链表的使用技巧
55 0
|
5月前
23.合并K个升序链表
23.合并K个升序链表
|
5月前
|
存储 算法 数据挖掘
Leetcode二十三题:合并K个升序链表【22/1000 python】
Leetcode二十三题:合并K个升序链表【22/1000 python】
|
6月前
|
Java C语言
剑指offer(牛客)——合并两个排序的链表
剑指offer(牛客)——合并两个排序的链表
35 1