C++双向链表

最早开始接触C++大概是在07年,真正开始学是在12年。那时候给我留下的印象就是普通数组是静态的,动态数组创建贼麻烦,当时比较常用的实现方法是用链表。链表的原理很简单,但是实现起来也挺复杂的。后来又学习了Python,发现数组好简单而且很灵活。时隔多年,再次用C++写插件,对于数据结构的认识还停留在多年前。为了实现自建类型的动态数组结构,第一想到的还是链表。参照网上的例子自己写了一个完整的链表类,放在这里留个记录。现在的C++已经丰富了很多特性,其中vector就可以很轻松的实现。其实内部逻辑应该都是一样的,不过vector做了完整的封装,完整性和速度肯定要比自己写的链表优秀的多。其实在开始选数据结构的时候也知道有vector这个东西,只是当时感觉好复杂,还会涉及到迭代器,就没用。现在重学C++,之前的基础没有打好,现在要补一补了。

#ifndef OTKXLINK_H_
#define OTKXLINK_H_

template <class T>
struct LinkNode
{
public:
    T element;
    LinkNode *next;
    LinkNode *last;

public:
    LinkNode(){};
    LinkNode(T e, LinkNode *last, LinkNode *next)
    {
        this->element = e;
        this->next = next;
        this->last = last;
    }
};
template <class T>
class LinkList
{
public:
    LinkList();
    ~LinkList();

    int size();
    bool is_empty
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值