顺序栈
#include<iostream>
using namespace std;
#define increasesize 10
template <class Object>
class Stack
{
public:
explicit Stack (int capacity = 10)
{
theArray = new Object[capacity];
MaxSize = capacity;
top = -1;
}
bool isEmpty() const
{
return top == -1;
}
bool isFull() const
{
return top == MaxSize -1;
}
const Object & Top() const
{
if(isEmpty()) throw Underflow();
return theArray[top];
}
void makeEmpty()
{
top = -1;
}
void Pop()
{
if(isEmpty()) throw Underflow();
cout<<theArray[top];
top -- ;
}
Object Push(const Object & x)
{
if(isFull())throw Overflow();
theArray [++top] = x;
}
Object topAndpop()
{
if(isEmpty()) throw Underflow();
}
int Underflow()
{
cout<<"underflow"<<endl;
return -1;
}
int Overflow()
{
cout << "overflow" <<endl;
return -1;
}
private:
int MaxSize;
int top;
Object * theArray;
};
int main()
{
Stack <int> dusk;
for(int i = 0 ; i < 10 ; i++)
{
dusk.Push(i);
}
for(int i = 0 ; i < 10 ; i++)
{
dusk.Pop();
}
}
//template <class T>
//void dusk<T>::hanshu(T x)
//{}