码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构之堆栈(数组实现)

时间:2015-07-20 12:26:01      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

/****************************
* Date   : 2015-07-20
* Description: stack.h
*****************************/
#ifndef _STACK_H
#define _STACK_H

template<class T>
class Stack{
public:
 Stack(int MaxStackSize = 10);
 ~Stack() {delete [] stack;}
 bool IsEmpty() const {return top == -1;}
 bool IsFull() const {return top == MaxTop;}
 T Top() const;
 Stack<T>& Push(const T& val);
 T Pop();
private:
 int top;
 int MaxTop;
 T *stack;
};
//
template<class T>
Stack<T>::Stack(int MaxStackSize /* = 10 */)
{
 top = -1;
 MaxTop = MaxStackSize - 1;
 stack = new T[MaxStackSize];
}
//
template<class T>
Stack<T>& Stack<T>::Push(const T& val)
{
 if(IsFull())
 {
  cerr << "栈空间已满" << endl;
  exit(EXIT_FAILURE);
 }
 stack[++top] = val;
 return *this;
}
//
template<class T>
T Stack<T>::Top() const
{
 if(IsEmpty())
 {
  cerr << "栈空间为空" << endl;
  exit(EXIT_FAILURE);
 }
 return stack[top];
}
//
template<class T>
T Stack<T>::Pop()
{
 if(IsEmpty())
 {
  cerr << "栈空间为空" << endl;
  exit(EXIT_FAILURE);
 }
 return stack[top--];
}
#endif //_STACK_H

数据结构之堆栈(数组实现)

标签:

原文地址:http://www.cnblogs.com/hzwackerman/p/4660783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!