listnode.hpp
来自「实现多项式表达式的运算器利用栈实现表达式计算器的模板类;用表达式计算器类和多项式」· HPP 代码 · 共 90 行
HPP
90 行
#include<iostream.h>
#ifndef LISTNODE_H
#define LISTNODE_H
template <class Type> class List;
template<class Type> class ListIterator;
/////////////////////////////////////////////////////////////////////////
//链表结点类定义开始,实现与课本基本一样,不作多余注释
/////////////////////////////////////////////////////////////////////////
template <class Type>
class ListNode
{
friend class List<Type>;
friend class ListIterator<Type>;
public:
ListNode();
ListNode(const Type& item,ListNode<Type>* next=NULL);
ListNode<Type>* getLink();
Type& getData();
void setLink(ListNode<Type>* next);
void setData(const Type& value);
void InsertAfter(ListNode<Type>* p);//将p所指示的节点成为当前节点的后继节点
ListNode<Type>* RemoveAfter();
ListNode<Type>* GetNode(const Type& item, ListNode<Type>* next);
private:
Type data;
ListNode<Type> *link;
};
/////////////////////////////////////////////////////////////////////////
template<class Type>
ListNode<Type>::ListNode():link(NULL)
{}
//////////////////////////////////////////////////////////////////////////
template<class Type>
ListNode<Type>::ListNode(const Type& item,ListNode<Type>* next):data(item),link(next)
{}
//////////////////////////////////////////////////////////////////////////
template<class Type>
void ListNode<Type>::InsertAfter(ListNode<Type>* p)
{
p->link=link;
link=p;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
ListNode<Type>* ListNode<Type>::GetNode(const Type& item,ListNode<Type>* next=NULL)
{
ListNode<Type>* newnode=new ListNode<Type>(item);
newnode->link=next;
return newnode;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
ListNode<Type>* ListNode<Type>::RemoveAfter()
{
ListNode<Type>* tempptr=link;
if(link==NULL)
return NULL;
link=tempprt->link;
return tempptr;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
ListNode<Type>* ListNode<Type>::getLink()
{
return link;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
Type& ListNode<Type>::getData()
{
return data;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
void ListNode<Type>::setLink(ListNode<Type>* next)
{
link=next;
}
//////////////////////////////////////////////////////////////////////////
template<class Type>
void ListNode<Type>::setData(const Type& value)
{
data=value;
}
//////////////////////////////////////////////////////////////////////////
//链表结点类定义结束
//////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?