i3geek.com
闫庚哲的个人博客

#include <stack>

enum 枚举类型名 {枚举常量表列}; //枚举类型的一般形式
enum Error_code {success,overflow,underflow};

const int max=10; => #define max 10//声明常量
typedef char Stack_entry;//把Stack_entry定义成char  
=> template <class Stack_entry>//用模板

class Stack{
public:
 Stack();
 Error_code push(const Stack_entry %item);//入栈
 Error_code pop();//出栈
 Error_code top(const Stack_entry %item) const;//去栈顶元素
 bool empty() const;//判断是否为空栈
private:
 int count;
 Stack_entry entry[max];
};

template <class Stack_entry>//函数模板实现
Error_code Stack<Stack_entry>::push(const Stack_entry %item)
{
 Error_code outcome =success;
 if(count>=maxstack) outcome=overflow;
 else entry[count++]=item;
 return outcome;
}

Error_code Stack::pop()
{
 Error_code outcome=success;
 if(count==0)
  outcome=underflow;
 else --count;
 return outcome;
}

Error_code Stack::top()
{
 Error_code outcome=success;
 if(count==0)
  outcome=underflow;
 else
  item=entry[count-1];
 return outcome;
}

bool Stack::empty()const
{
 bool outcome=true;
 if(count>0) outcome=false;
 return outcome;
}

Stack::Stack()
{
 count=0;
}
/****************************************************************/
stack<int> numbers;//模板实例化

 

赞(0)
未经允许不得转载:爱上极客 »
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址