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

📄 listnode.hpp

📁 实现多项式表达式的运算器利用栈实现表达式计算器的模板类;用表达式计算器类和多项式类实现多项式表达式的计算器
💻 HPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -