c++ 栈的数组实现

本文档展示了如何使用C++模板类实现一个基于数组的栈数据结构。包括构造函数、入栈、出栈、查看栈顶、判断栈空、栈满、清空栈及获取栈大小等操作。在main函数中进行了测试,演示了异常处理。
摘要由CSDN通过智能技术生成
/*
栈的数组实现
*/

#include<iostream>
using namespace std;

#define MAXSIZE 10;

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

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

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

	for(size_t i=0;i<maxS
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值