栈的主要功能是:
bool Push(T val); //往栈顶添加元素val
T Top(); //返回栈顶元素的值
T Pop();//取出栈顶元素,并删除
void Clear(); //清空栈
bool IsEmpty();//判断是否为空
int Size();//返回元素个数
栈的数组表示
#include <iostream>
using namespace std;
int static SIZE = 100;
template<class T>
class Stack
{
private:
int top; //栈顶元素索引
int size;
int maxSize;
T* pArray;
public:
Stack(int stackSize = SIZE){
maxSize = stackSize;
pArray = new T[maxSize];
size = 1;
top = -1;
}
~Stack(void){delete [] pArray;}
bool Push(T val){ //添加栈顶元素
if(IsFull()){
cout<<"stack is full"<<endl;
returnfalse;
}
top++;
pArray[top] = val;
size++;
return true;
}
T Top(){ //返回栈顶元素
if(IsEmpty()) {
cout<<"stack is empty"<<endl;
return NULL;
}
return pArray[top];
}
T Pop(){ //返回栈顶元素,并删除
if(IsEmpty()){
cout<<"stack is empty"<<endl;
return NULL;
}
size--;
return pArray[top--];
}
void Clear(){ top = -1;size = 0;}
bool IsEmpty(){return size == 0? true:false;}
bool IsFull() {return size == maxSize?true:false;}
int Size(){return size;}
};