list容器不像之前的string、vector,不属于顺序存储的容器,是经由链表实现的,而且还是双链表
目录
一、准备工作:构建结点+连接节点
为了实现双链表,我们需要先通过结构体表示出每一个结点,然后使用类来连接这些结点
为了和原生的list区分开,我们把自定义的list放在自定义命名空间xing中
1、构建结点
每一个结点的数据类型是不确定的,所以这里加入了模板
定义结构体模板或者类模板时,无需加 <T>,除此之外,使用结构体模板或者类模板都需要加 <T>,因为类模板不会自动推导数据类型
C++中的结构体和类一样,在创建结构体对象的时候,会调用构造函数,方便我们在创建对象的时候就给_data赋值,赋予缺省值的目的是,创建哨兵位结点时,不会放入数据
namespace xing
{
template<class T>
struct ListNode //定义一个结构体模板
{
T _data; //每个结点中保存的数据
ListNode<T>* _next; //下一个结点的地址
ListNode<T>* _prev; //上一个结点的地址
ListNode(const T& data = T()) //方便下面在构建结点的时候就直接初始化
:_data(data),
_next(nullptr),
_prev(nul

本文详细介绍了如何在C++中自定义一个双链表数据结构,包括构建结点、连接结点以及尾部插入数据的操作。通过结构体模板定义结点,利用类模板创建双链表,并提供了测试代码展示其实现过程。
最低0.47元/天 解锁文章
737

被折叠的 条评论
为什么被折叠?



