链表的合并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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。