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

📄 stack.h

📁 功能:四阶幻方全解 运算时间:3、40秒 结果:7040个 环境:Visual Studio.net 2003的vc++的控制台项目
💻 H
字号:
const int STACK_SIZE = 10;
const int INCREASMENT = 10;
using namespace std;
///////////////////////////////////////////////栈类模板定义开始**********************************************************
template <class T>
class Stack
{
	T *base;
	T *top;
	int space;
	int size;
public:
	Stack()
	{
		base = new T[STACK_SIZE];
		top = base;
		space = STACK_SIZE;
		size = 0;
	}
	~Stack()
	{
		delete []base;		
		base = NULL;
		top = NULL;
	}
	int Push(T e);
	int Pop(T &e);
	int GetTop(T &e);
	int StackEmpty();
	int GetOne(int i, T &e);//取出栈中第i个元素。
};
//*********************
template <class T>
int Stack<T>::Push(T e)//元素e推入栈
{
	if (size >= space)
	{
		if (!(base = (T *)realloc(base, (space + INCREASMENT)*sizeof(T))))
		{
			exit(0);
		}
		else
		{
			top = base + size;
			space += INCREASMENT;
		}		
	}
	*top++ = e;
	size++;
	return 1;
}
//*********************
template <class T>
int Stack<T>::Pop(T &e)//弹出栈顶元素,栈顶元素存入e中
{
	if (size == 0)
	{
		return 0;
	}
	else
	{
		e = *--top;
		size--;
		return 1;
	}
}
//*********************
template <class T>
int Stack<T>::GetTop(T &e)//取栈顶元素,存入e中
{
	if (size == 0)
	{
		return 0;
	}
	else
	{
		e = *(top - 1);
		return 1;
	}
}
//*********************
template <class T>
int Stack<T>::StackEmpty()//判断栈是否为空
{
	if (size == 0)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
//*********************
template <class T>
int Stack<T>::GetOne(int i, T &e)//取出栈中第i个元素,i(0~size-1);
{
	e = *(base + i);	
	return 1;
}
////////////////////////////////////////////////////////////栈类模板定义结束*********************************************

⌨️ 快捷键说明

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