最早开始接触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