C++实现接两个链表实例代码

发布时间 - 2026-01-10 23:20:34    点击率:

 C++实现接两个链表实例代码

有以ha为头结点的链表,元素个数为m;以hb为头结点的链表,元素个数为n。现在需要你把这两个链表连接起来,并使时间复杂度最小,请分析并实现。

思路:

很简单的链表操作的题目,逆序头部插入,并将长度较长的一方接到较短的后面,时间复杂度为O(min(m,n)),注意free使用的地点!。

实例代码:

#include <iostream> 
#include <string> 
#include <algorithm> 
using namespace std; 
typedef int ElemType; 
 
typedef struct Node 
{ 
  ElemType data; 
  struct Node *next; 
}Lnode,*LinkList; 
 
 
//打印  
void print(LinkList &head) 
{ 
  LinkList plist=head->next; 
  while(plist!=NULL) 
  { 
    cout<<plist->data<<" "; 
    plist=plist->next; 
  } 
  cout<<endl; 
} 
 
//逆序输入链表  
void CreateList(LinkList &L,int m) 
{ 
  LinkList p; 
  L=(LinkList)malloc(sizeof(Node)); 
  L->next=NULL; 
  cout<<"逆序输入元素,空格分隔:"<<endl; 
  for(int i=m;i>0;--i) 
  { 
    p=(LinkList)malloc(sizeof(Node)); 
    cin>>p->data; 
    p->next=L->next; 
    L->next=p; 
  } 
  print(L); 
} 
 
//连接链表  
void Combine(LinkList &ha,int m,LinkList &hb,int n,LinkList &hc) 
{ 
  LinkList selectMin; 
  hc=(LinkList)malloc(sizeof(Node)); 
  int flag=0; 
  if(m>n) 
  { 
    selectMin=hb; 
    flag=1; //ha在后面  
  } 
  else 
  selectMin=ha; 
   
  while(selectMin->next!=NULL) 
  selectMin=selectMin->next; 
   
  if(flag) 
  { 
    selectMin->next=ha->next; 
    hc=hb; 
    free(ha);//notice 
  } 
  else 
  { 
    selectMin->next=hb->next; 
    hc=ha; 
    free(hb); 
  } 
  cout<<"合并后的链表为:"<<endl; 
  print(hc);  
} 
 
void Destory(LinkList &hc) //仅释放hc即可  
{ 
  LinkList temp; 
  while(hc!=NULL) 
  { 
    temp=hc; 
    hc=hc->next; 
    free(temp); 
  } 
} 
int main() 
{ 
  int m,n; 
  cout<<"请输入以ha为head节点链表的元素个数:"<<endl; 
  cin>>m; 
  LinkList ha,hb,hc; 
  CreateList(ha,m); 
  cout<<"请输入以hb为head节点链表的元素个数:"<<endl; 
  cin>>n; 
  CreateList(hb,n); 
  Combine(ha,m,hb,n,hc); 
   
  Destory(hc); 
  return 0;   
} 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C++接两个链表  # C++接两个链表如何实现  # C++接链表  # C++ 数据结构链表的实现代码  # 关于双向链表的增删改查和排序的C++实现  # C++利用静态成员或类模板构建链表的方法讲解  # C++将二叉树转为双向链表及判断两个链表是否相交  # C++实现的链表类实例  # C++语言实现线性表之链表实例  # C++循环链表之约瑟夫环的实现方法  # C++中单链表的建立与基本操作  # 浅析C++中单链表的增、删、改、减  # 链表  # 请输入  # 数为  # 这两个  # 希望能  # 很简单  # 并将  # 在后面  # 你把  # 谢谢大家  # 较长  # 并使  # 较短  # iostream  # lt  # include  # cpp  # namespace  # std  # algorithm 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在宝塔面板创建新站点?  深入理解Android中的xmlns:tools属性  如何快速启动建站代理加盟业务?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何快速搭建虚拟主机网站?新手必看指南  如何快速查询网址的建站时间与历史轨迹?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  jQuery中的100个技巧汇总  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  网站制作报价单模板图片,小松挖机官方网站报价?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何在阿里云虚拟服务器快速搭建网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel如何实现API资源集合?(Resource Collection教程)  如何获取免费开源的自助建站系统源码?  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  网站制作免费,什么网站能看正片电影?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  ,网页ppt怎么弄成自己的ppt?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  晋江文学城电脑版官网 晋江文学城网页版直接进入  QQ浏览器网页版登录入口 个人中心在线进入  海南网站制作公司有哪些,海口网是哪家的?  怎么用AI帮你设计一套个性化的手机App图标?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  利用vue写todolist单页应用  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  如何撰写建站申请书?关键要点有哪些?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何在自有机房高效搭建专业网站?  Laravel如何处理表单验证?(Requests代码示例)  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  详解jQuery中基本的动画方法  如何快速搭建安全的FTP站点?  如何在IIS7中新建站点?详细步骤解析  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  网站制作大概多少钱一个,做一个平台网站大概多少钱?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何用VPS主机快速搭建个人网站?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道