/*************************************************************************
> File Name: Stack.h
> Author:keson
> Mail:keson@bupt.edu.cn
> Created Time: 2014年11月21日 星期五 17时43分19秒
************************************************************************/
#ifndef _STACK_H
#define _STACK_H
template<typename Object>
class Stack
{
public:
explicit Stack(int initCapacity=0):theCapacity{initCapacity}
{objects=new Object[theCapacity];}
//Deconstructor
~Stack()
{
delete[]objects;
}
Object &operator[](int index)
{
return objects[index];
}
int capacity()const
{return theCapacity;}
int size() const
{
return theSize;
}
bool Empty() const
{
return theSize==0;
}
void push(Object x)
{
if(top>=theCapacity-1)
throw"overflow_error";
top++;
theSize++;
objects[top]=x;
}
Object back()
{
if(Empty())
throw"下溢出";
return objects[top];
}
Object pop()
{
if(Empty())
throw"下溢出";
top--;
theSize--;
return objects[top+1];
}
private:
int theSize=0;
int theCapacity;
int top=-1;
Object *objects;
};
#endif
> File Name: Stack.h
> Author:keson
> Mail:keson@bupt.edu.cn
> Created Time: 2014年11月21日 星期五 17时43分19秒
************************************************************************/
#ifndef _STACK_H
#define _STACK_H
template<typename Object>
class Stack
{
public:
explicit Stack(int initCapacity=0):theCapacity{initCapacity}
{objects=new Object[theCapacity];}
//Deconstructor
~Stack()
{
delete[]objects;
}
Object &operator[](int index)
{
return objects[index];
}
int capacity()const
{return theCapacity;}
int size() const
{
return theSize;
}
bool Empty() const
{
return theSize==0;
}
void push(Object x)
{
if(top>=theCapacity-1)
throw"overflow_error";
top++;
theSize++;
objects[top]=x;
}
Object back()
{
if(Empty())
throw"下溢出";
return objects[top];
}
Object pop()
{
if(Empty())
throw"下溢出";
top--;
theSize--;
return objects[top+1];
}
private:
int theSize=0;
int theCapacity;
int top=-1;
Object *objects;
};
#endif