Add Node.hpp

main
p68710245 1 year ago
parent 53db099d11
commit 7304fbee9a

@ -0,0 +1,40 @@
#ifndef NODE_HPP
#define NODE_HPP
template <typename T>
class List; // 友元类的前置声明
template <typename T>
class Node
{
T info; // 数据域
Node<T> *link; // 指针域,注意结点类格式,类模板实例化为类
public:
Node() : link{nullptr} {} // 默认构造函数,用于构建头节点
Node(const T &data)
: info{data}, link{nullptr} {} // 生成一般结点的构造函数
Node(const Node &) = delete;
Node &operator=(const Node &) = delete;
void InsertAfter(Node<T> *p) // 在当前结点后插入一个结点
{
p->link = link;
link = p;
}
Node<T> *RemoveAfter() // 删除当前结点的后继结点并返回其地址
{
if (link) // 判断节点后是否有节点
{
Node<T> *tempP{link}; // 获取后继节点
link = tempP->link;
return tempP;
}
return nullptr;
}
void print()
{
std::cout << info << '\t'; // 需要info支持插入运算符重载
}
friend class List<T>; // 以List为友元类
};
#endif
Loading…
Cancel
Save