(2011.07.20) 顺序栈.cpp

来源:互联网 发布:甜品软件 编辑:程序博客网 时间:2024/05/30 23:50
// 顺序栈.cpp// Array-based stack implementationtemplate <class Elem> class AStack: public Stack<Elem>{private:int size;// Maximum size of stackint top;// Index for top elementElem *listArray;// Array holding stack elementspublic:AStack (int sz = DafaultListSize)// Constructor{ size = sz; top = 0; listArray = new Elem[sz]; }~AStack() {delete [] listArray;}// Destructorvoid clear(){ top = 0; }bool push (const Elem& item) {if (top == 0)return false;// stack is fullelse{listArray[top++] = item;return true;}}bool pop(Elem& it)// pop top element{if (top == 0) return false;else{it = listArray[--top];return true;}}bool topValue(Elem& it) const// return top element{if (top == 0) return false;else {it = listArray[top - 1];return true;}}int length()const {return top;}};