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

📄 stack.h

📁 利用栈求解算术表达式的值
💻 H
字号:

//类StackNode的声明,该类表示栈的结点
template <class T>
struct StackNode
{
	T data;
	StackNode* next;
};



//类LinkStack的声明
template <class T>
class LinkStack
{
private:
	StackNode<T>*  top;
    StackNode<T>* temptop;
	int size;
public:
	LinkStack();
	bool Empty();
	T GetTop();
	void Push(T d);
	T Pop();
	int Getsize();
};



//类LinkStack内部函数的定义

template <class T>
LinkStack<T>::LinkStack()                      //构造函数
{
	top=NULL;
	size=0;
}


template <class T>
int LinkStack<T>::Getsize()                      //获得结点的数目
{
	return size;
}

template <class T>
bool LinkStack<T>::Empty()                    //判断栈是否为空
{
	if (size<=0) return 1;
	else return 0;
}

template <class T>
T LinkStack<T>::GetTop()             //获得栈顶元素的值
{return top->data;
}

template <class T>                                       //结点入栈
void LinkStack<T>::Push(T d)
{
	StackNode<T>* newlink=new StackNode<T>;
	newlink->data=d;
	newlink->next=top;
	top=newlink;
	size++;
}

template <class T>
T LinkStack<T>::Pop()                                       //结点出栈
{
	if (size==0){
		cout <<"Input Error";
		cin.clear();     
        cin.ignore(); 
	    char a=cin.get();
		exit(0);
	}
	T Pope=top->data;
	temptop=top;
	top=top->next;
	delete temptop;
	size--;
	return Pope;
}








⌨️ 快捷键说明

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