Andycms2011.blog.chinaunix.net
myx201i
全部博文(27)
2012年(1)
2011年(22)
2010年(4)
_Gushi
DeweyHap
yn_xysnz
q5339621
Beginnor
空明2
BaiWfg2
sytuacnh
亮有一妓
分类: C/C++
2010-12-31 17:05:18
#include <assert.h> template< class T > class ArrayStack { public: ArrayStack():size(0), tos(-1), contain( NULL ){ } ArrayStack( int MaxSize ); void Push( T& element ); T& Pop(); bool IsEmpty(); bool IsFull(); void ClearEmpty(); private: int size; int tos; //栈顶索引,当其为-1时表示空栈 T* contain; }; template< class T > ArrayStack< T >::ArrayStack( int MaxSize ) { size = MaxSize; tos = -1; contain = new T[ size ]; } template< class T > void ArrayStack< T >::Push( T& element ) { assert( tos != size-1 ); contain[ ++tos ] = element; } template< class T > T& ArrayStack< T >::Pop() { assert( tos != -1); return contain[ tos-- ]; } template< class T > void ArrayStack< T >::ClearEmpty() { tos = -1; } template< class T > bool ArrayStack< T >::IsEmpty() { if( tos == -1) return true; else return false; } template< class T > bool ArrayStack< T >::IsFull() { if( tos == size-1 ) return true; else return false; }
上一篇:C++中的explicit 关键字
下一篇:栈的实现方式之二:链表实现的链式栈
chinaunix网友2011-03-07 08:30:40
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com
登录 注册