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

📄 9_3.h

📁 清华大学出版社出版的c++程序设计课本
💻 H
字号:
//9_3.h
#ifndef NODE_CLASS
#define NODE_CLASS

//类定义部分
template <class T>
class Node
{
    private:
        Node<T> *next;  //指向后继节点的指针
    public:
        T data;  //数据域
    
	    // 构造函数
        Node (const T& item, Node<T>* ptrnext = NULL);
        
        // 在本节点之后插入一个同类节点p
        void InsertAfter(Node<T> *p);
        // 删除本节点的后继节点,并返回其地址
        Node<T> *DeleteAfter(void);
        
        // 获取后继节点的地址
        Node<T> *NextNode(void) const;
};

// 类的实现部分
// 构造函数,初始化数据和指针成员
template <class T>
Node<T>::Node(const T& item, Node<T>* ptrnext) : 
		 data(item), next(ptrnext)
{}
  
// 返回私有的指针成员
template <class T>
Node<T> *Node<T>::NextNode(void) const
{
    return next;
} 

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

// 删除当前节点的后继节点,并返回其地址
template <class T>
Node<T> *Node<T>::DeleteAfter(void)
{
Node<T> *tempPtr = next;  //将欲删除的节点地址存储到tempPtr中

    if (next == NULL)  //如果当前节点没有后继节点,则返回NULL
        return NULL;
        
    next = tempPtr->next;  //使当前节点的指针域指向tempPtr的后继节点
    return tempPtr;   //返回被删除的节点的地址
}

#endif  // NODE_CLASS

⌨️ 快捷键说明

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