栈操作的C++实现

  1. 原文地址:http://blog.youkuaiyun.com/moxiaomomo/article/details/6393258 感谢作者分享
  2. #ifndef STACK_H  
  3. #define STACK_H  
  4.   
  5. #include<stdio.h>  
  6. #include<stdlib.h>  
  7. #include <iostream>  
  8. using namespace std;  
  9.   
  10. template<class T>  
  11. class Stack  
  12. {  
  13. public:  
  14.     int top;  
  15.     int maxtop;  
  16.     T *data;  
  17.     Stack(int size);       //构造函数  
  18.     ~Stack();  
  19.     bool isEmpty();    //判断为空  
  20.     bool isFull();     //判断为满  
  21.     void push(T ch/*,Stack s*/);   //压栈  
  22.     T pop();      //出栈  
  23. };  
  24.   
  25. template <class T>  
  26. Stack<T>::Stack(int size)  
  27. {  
  28.     maxtop=size;  
  29.     top=-1;  
  30.     data=new T[size];  
  31. }  
  32.   
  33. template <class T>  
  34. Stack<T>::~Stack()  
  35. {  
  36.     delete []data;  
  37. }  
  38.   
  39. template <class T>  
  40. bool Stack<T>::isEmpty()  
  41. {  
  42.     return top<0;  
  43. }  
  44.   
  45. template <class T>  
  46. bool Stack<T>::isFull()  
  47. {  
  48.     return top==maxtop;  
  49. }  
  50.   
  51. template <class T>  
  52. void Stack<T>::push(T ch/*,Stack s*/)  
  53. {  
  54.     if (isFull())  
  55.     {  
  56.         cout<<"The stack is full~"<<endl;  
  57.         return;  
  58.     }  
  59.   
  60.     data[++top]=ch;  
  61. }  
  62.   
  63. template <class T>  
  64. T Stack<T>::pop()  
  65. {  
  66.     if (isEmpty())  
  67.     {  
  68.         cout<<"The stack is empty~"<<endl;  
  69.         return -1;  
  70.     }  
  71.     T s=data[top];  
  72.   
  73.     top--;  
  74.     return s;  
  75. }  
  76. #endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值