查看文章 |
7. 数据结构 桟 桟类 Stack_Array 数组实现 2005.01
2006-07-24 17:34
#include "stdio.h" #include "assert.h" template <class ELEM> class Stack { public: ELEM *ElmList; int top; int maxsize; Stack(int size); ~Stack(); Push(ELEM item); ELEM Pop(); ELEM GetTop(); bool IsEmpty(); bool IsFull(); }; template <class ELEM> Stack<ELEM>::Stack(int size) { maxsize = size; ElmList = new ELEM[maxsize]; assert(ElmList != (ELEM *)NULL); top = -1; } template <class ELEM> Stack<ELEM>::~Stack() { delete ElmList; } template <class ELEM> bool Stack<ELEM>::IsFull() { return top == maxsize - 1; } template <class ELEM> bool Stack<ELEM>::IsEmpty() { return top == -1; } template <class ELEM> Stack<ELEM>::Push(ELEM item) { assert(!IsFull()); top ++; ElmList[top] = item; } template <class ELEM> ELEM Stack<ELEM>::Pop() { assert(!IsEmpty()); return ElmList[top --]; } template <class ELEM> ELEM Stack<ELEM>::GetTop() { assert(!IsEmpty()); return ElmList[top]; } void main() { Stack<int> s(10); s.Push(1); s.Push(2); s.Push(3); s.Push(4); s.Push(5); printf("%d ", s.Pop()); printf("%d ", s.Pop()); printf("%d ", s.Pop()); printf("%d ", s.Pop()); printf("%d ", s.Pop()); printf("\n\n"); } |
最近读者:

