好友
阅读权限10
听众
最后登录1970-1-1
|
template<typename DataType> class Stack
{
public:
Stack(int size)
{
maxSize = size; //设置最大容量
top = -1; //初始化为空栈
elements = new DataType[size]; //分配空间
}
~Stack()
{
delete [] elements;
}
//入栈操作
bool push(DataType data);
//出栈操作
DataType pop();
/****************判空********************/
bool isEmpty();
/**********获取元素数***********/
int eleNumber();
private:
DataType *elements; //数据域指针
int top; //栈顶
int maxSize; //栈的最大容量
};
/*****************入栈操作************************/
template<typename DataType> bool Stack<DataType>::push(DataType data)
{
if(top == maxSize) //判断是否栈满
return false;
elements[++top] = data; //从栈顶压入元素
return true;
}
/********************出栈操作*******************/
template<typename DataType> DataType Stack<DataType>::pop()
{
if(top == -1) //判断是否栈空
{
exit(1);
}
return elements[top--]; //返回栈顶元素
}
/*************************栈判空***********************/
template<typename DataType> bool Stack<DataType>::isEmpty(){
if(top == -1)
return true;
else
return false;
}
/*********************获取当前元素数********************/
template<typename DataType> int Stack<DataType>::eleNumber(){
if(top >=0)
return top+1;
else
return 0;
} |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|