| 
 | 
 
 
 楼主 |
发表于 2016-2-17 23:00:19
|
显示全部楼层
 
 
 
 
有劳了- #include <iostream>
 
 - #include <string>
 
  
- template<class T>
 
 - class Stack
 
 - {
 
 - public:
 
 -         Stack(unsigned int size = 100)
 
 -         {
 
 -                 this->size = size;
 
 -                 data = new T[size];
 
 -                 sp = 0;
 
 -         }
 
 -         ~Stack()
 
 -         {
 
 -                 delete []data;
 
 -         }
 
 -         void push(T value)throw(const char *)
 
 -         {
 
 -                 if(sp<=size)
 
 -                 {
 
 -                         data[sp++] = value;
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         throw"栈溢出\n";
 
 -                 }
 
 -         }
 
 -         T pop()throw(const char *)//返回一个T类型
 
 -         {
 
 -                 if(sp>0)
 
 -                 {
 
 -                         return data[--sp];
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         throw"栈不存在数据\n";
 
 -                 }
 
 -         }
 
  
- private:
 
 -         unsigned int  size;
 
 -         unsigned int sp;
 
 -         T *data;
 
 - };
 
  
- int main()
 
 - {
 
 -         Stack<int> intstack(1);//表明是int类型
 
  
-         try
 
 -         {
 
 -         intstack.push(1);
 
 -         intstack.push(2);
 
 -         intstack.push(3);
 
 -         }
 
 -         catch(const char *pp)
 
 -         {
 
 -                 std::cout << pp;
 
 -                 return 1;
 
 -         }
 
 -         try
 
 -         {
 
 -                 std::cout<<intstack.pop()<<"\n";
 
 -                 std::cout<<intstack.pop()<<"\n";
 
 -                 std::cout<<intstack.pop()<<"\n";
 
 -         }
 
 -         catch(const char *p)
 
 -         {
 
 -                 std::cout<< p;
 
 -         }
 
 -         return 0;
 
 - }
 
  复制代码 |   
 
 
 
 |