Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153306
  • 博文数量: 27
  • 博客积分: 710
  • 博客等级: 上士
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-03 20:08
文章分类

全部博文(27)

文章存档

2012年(1)

2011年(22)

2010年(4)

我的朋友

分类: 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;
}


阅读(1106) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-07 08:30:40

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com