数据结构与算法(5、链表的拼接)

本文探讨如何拼接两个已排序的链表,形成一个新的有序链表C。首先检查链表是否为空,若为空则返回另一个链表。接着比较链表A和B的头节点,根据大小关系删除相应节点并添加到新链表C的末尾。文章详细介绍了isEmpty()、getHeadData()、pop_element()和push_back()四个关键方法的实现。
摘要由CSDN通过智能技术生成

今天复习一下链表的拼接,从2个链表的拼接开始
例如有一个链表A,一个链表B,A和B已经排序好,现在的需求是将链表A和链表B的元素按照排好序,然后形成新的链表C。
首先规划一下思路:
1、判断是否是空链表,如果是空链表,就返回另外一个链表
(第一个function isEmpty()判断是否是空链表)
2、如果不是空链表,那么让A和B的第一个元素进行比较,如果A的第一个元素(取链表头结点的元素)大于B的第一个元素,那么让B的第一个元素弹出(删除B中的元素),然后重新放在新的链表C中(链表尾部加入新的数据),在这个时候,我们需要定义三个方法,一个是取得链表的头结点的数据的方法getHeadData(),二是删除B链表的元素pop_element(),第三个是在链表的尾部插入新的结点push_back()
做好思路之后,下面实现每一个方法
* isEmpty()*

//判断链表是否是空,只需要判断
void isEmpty(){
//判断头结点是否是空结点
  return head==
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值