链表的重要性
- 链表的结构非常简单,由指针把若干个节点连接成链状结构。链表的创建、插入节点、删除节点等操作只需少许代码就能实现。
- 链表是一种动态的数据结构,其操作需要对指针进行操作,因此有足够的基本功才能熟练操作链表。
链表的基本操作
链表的完整代码
template<class DataType>
struct Node
{
Node()
:_data(0)
, _next(nullptr)
{}
DataType _data;
Node* _next;
};
class List
{
public:
//构造函数将头节点置空
List()
:_head(nullptr)
{
}
List(const List& l)
:_head(nullptr)
{
Node<DataType>* cur = l._head;
while (cur != nullptr)
{
PushBack(cur->_data);
cur = cur->_next;
}
}
List& operator=(List& l)
{
if (this != &l)
{
List tmp(l);
Node<DataType>* node = tmp._head;
tmp._head = _head;
_head = node;
}
return *this;
}
//析构函数从头节点开始一个个释放
~List()
{
Node<DataType>* cur = _head;//从头结点开始删除
wh