单向链表,简单的说就是一个个结点由一个有方向的绳子连接起来的,如图所示:其中head指向头结点,tail指向尾结点,而在每个结点上简单就包含两个一个是数据变量,另一个是指向下一个结点的Next指针(Next定义与结构体或者类一样)。
如定义一个简单的结点类(所写的带有模板) data为存储数据的变量以及Next指向下一个结点的指针,以及添加函数一个默认构造函数,一个接收一个T类型变量引用构造函数,以及设置data和Next的值函数,获取两者的函数
template<class T>
class ListNode {
private:
T data; /* 存储数据变量 */
ListNode<T> * Next; /* 指向下一个结点的指针 */
public:
/* default constructot 默认构造函数 */
ListNode():Next(nullptr){ }
ListNode(const T& value) :Next(nullptr) { data = value; }
/* 析构函数 */
~ListNode() { }
/* 设置Next */
void SetLink(ListNode<T>* Next) { this->Next = Next; }
/* 设置数据 */
void SetData(const T& value) { this