⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node.h

📁 安全数组 普通链表 哈希表 二叉搜索树 AVL树 集合类 通用自动机 所有类均使用模板编写
💻 H
字号:
/* 链表节点
 * 
 */

#ifndef NODE_CLASS
#define NODE_CLASS

#include <stdlib.h>

template <class T>
class LinkedList;

template <class T>
class Node
{
private:
	// next 为指向下一节点的指针
	Node<T> *next;
public:
	// data 为公有成员
	T data;

	// 构造函数
	Node(const T& item, Node<T> *ptrnext = NULL);

	// 修改表的方法
	void InsertAfter(Node<T> *p);
	Node<T> *DeleteAfter(void);

	// 取得下一节点的指针
	Node<T> *NextNode(void) const;

	friend class LinkedList<T>;
};

// 构造函数。初始化数据及指针成员
template <class T>
Node<T>::Node(const T& item, Node<T> *ptrnext):
	          data(item), next(ptrnext)
{}

// 返回私有成员 next 的值
template <class T>
Node<T> *Node<T>::NextNode(void) const
{
	return next;
}

// 在当前节点之后插入节点 p
template <class T>
void Node<T>::InsertAfter(Node<T> *p)
{
	// p 指向当前节点的后继节点,然后将当前节点指向 p
	p->next = next;
	next = p;
}

// 删除当前节点的后继节点并返回其指针
template <class T>
Node<T> *Node<T>::DeleteAfter(void)
{
	// 若没有后继节点,返回 NULL
	if (next == NULL)
		return NULL;

	// 保存指向被删除节点的指针
	Node<T> *tempPtr = next;
	// 使当前节点指向 tempPtr 的后继节点
	next = tempPtr->next;
	// 返回被删除节点的指针
	return tempPtr;
}

#endif // NODE_CLASS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -