c++ 栈的数组实现

/*
栈的数组实现
*/

#include
using namespace std;

#define MAXSIZE 10;

template
class Stack
{
public:
	//默认构造函数
	Stack();

	Stack(size_t maxElements);
	Stack(T data[],size_t maxElments);
	~Stack();

	//入栈
	void Push(T data);

	//出栈并返回
	T Pop();

	//返回栈顶元素
	T Top();

	//判断是否为空栈
	bool isEmpty();

	//栈是否已满
	bool isFull();

	//清空栈
	void Clear();

	//获得栈里元素的个数
	size_t GetSize();

private:
	//栈标指示器
	size_t top;

	//数组
	T *arrays;

	//栈的容量
	size_t maxSize;
};

template
Stack::Stack():
	maxSize(MAXSIZE),top(-1)
{
	arrays=new T[maxSize];
	if(arrays==NULL)
		cout<<"动态分配内存失败";
}

template
Stack::Stack(size_t maxElements):
	maxSize(maxElements),top(-1)
{
	arrays=new T[maxSize];//创建存储栈的数组
}

template
Stack::Stack(T data[],size_t maxElements):
	maxSize(maxElements),top(-1)
{
	arrays=new T[maxSize];//创建存储栈的数组

	for(size_t i=0;i

你可能感兴趣的:(c++学习笔记,c++,栈,数组)