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

📄 sqstack.h

📁 用C++编写的一个计算器
💻 H
字号:
//Sequence-Stack class is declared
//SqStack.h
#if !defined (_SQSTACK_H_CPP)
#define _SQSTACK_H_CPP

#if     _MSC_VER > 100
#pragma once
#endif

template <class T>
class SqStack{
	public:
		SqStack(int size=100);
		~SqStack(){delete [] stack;}
		void ClearStack(void);
		bool GetTop(T& e) const;
		bool IsEmpty(void) const;
		int StackLength(void) const;
		bool Push(const T& e);
		bool Pop(T& e);
	private:
		int maxsize;
		int top;
		T *stack;
};

template <class T>
SqStack<T>::SqStack(int size/*=100*/):top(-1),maxsize(size){
	if(!(stack = new T[maxsize]))
		exit(1);
}

template <class T>
void SqStack<T>::ClearStack(void){
	top=-1;
}

template <class T>
bool SqStack<T>::GetTop(T& e) const{
	if(-1 == top) return false;
	e = stack[top];
	return true;
}

template <class T>
bool SqStack<T>::IsEmpty(void) const{
	return -1==top;
}

template <class T>
int SqStack<T>::StackLength(void) const{
	return top+1;
}

template <class T>
bool SqStack<T>::Pop(T& e){
	if(-1 == top) return false;
	e = stack[top];
	--top;
	return true;
}

template <class T>
bool SqStack<T>::Push(const T& e){
	if(top>=maxsize-1) return false;
	stack[++top]=e;
	return true;
}

#endif

⌨️ 快捷键说明

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