stack1顺序栈
顺序栈
#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)
//{}