棧的主要功能是:
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;}
};