#include <iostream>
using namespace std; template <typename T>
class stack{
private:
int top; //栈顶指针
int maxLen; //栈最大长度
T *data; //用数组来创建栈
public:
stack(int top_ = -1 , int maxLen_ = 10):top(top_),maxLen(maxLen_){
data = new T[maxLen]; //长度为maxLen的动态数组
}
~stack(){
delete [] data; //释放动态数组
}
void Push(T x); //将x推进栈
void Pop(); //推出栈顶元素
T getPeek(); //读栈顶元素
bool isEmpty(); //判断栈是否为空
bool isFull(); //判断栈是否满
void printAll(); //打印整个栈
}; template <typename T>
void stack<T>::Push(T x){ //将x推进栈,实现部分
if(isFull())
return;
top++;
data[top] = x;
} template <typename T>
void stack<T>::Pop(){ //推出栈顶元素,实现部分
if(isEmpty())
return;
top--;
} template <typename T>
T stack<T>::getPeek(){ //获得栈顶元素,实现部分
if(isEmpty())
return;
return data[top];
} template <typename T>
bool stack<T>::isEmpty(){ //判断栈是否为空,实现部分
return top==-1;
} template <typename T>
bool stack<T>::isFull(){ //判断栈是否满,实现部分
return top==maxLen-1;
} template <typename T>
void stack<T>::printAll(){ //打印栈内元素,实现部分
if(isEmpty())
return;
for(int i = 0; i <=top ; i++){
cout<<data[i]<<endl;
}
}
void main(){
stack<int> a; //创建元素类型为int的栈对象
a.Push(1); //将1推进栈
a.Push(2); //将2推进栈
a.Push(3); //将3推进栈
a.Push(4); //将4推进栈
a.Push(5); //将5推进栈
a.Pop(); //弹出栈顶元素
a.printAll(); //打印栈内元素
}

最新文章

  1. [Bind(Exclude = &quot;OrderId&quot;)][ScaffoldColumn(false)]
  2. PostgreSQL-PL/pgSQL-cursor,loop
  3. IOS事件处理机制(关于触发者和响应者的确认)
  4. django提供xml下载
  5. 理解C#系列 / 核心C# / 编译参数
  6. Linux之mount命令详解
  7. 利用Highcharts制作web图表学习(一)
  8. Intent是什么?
  9. 开源的Owin 的身份验证支持 和跨域支持
  10. JSP内置对象--pageContent,request,response,session,application,config,out,page,exception
  11. 5.Java 加解密技术系列之 DES
  12. MongoDB3.4安装配置以及与Robomongo1.1的连接——解决Authentication Failed导致的不能连接问题
  13. Jedis对Redis的常用命令操作
  14. 通过JDK常用工具监控Java进程的内存占用情况
  15. windows10+VS+CUDA+cuDNN+TensorFlow-gpu环境搭建(问题及解决)
  16. [oracle]解决ora-01034 oracle not available
  17. 我喜欢 Google Flutter
  18. vc++基础班[26]---进程的相关操作
  19. swift static func 和 class func
  20. HDU 2511 汉诺塔X

热门文章

  1. PowerShell中的数学计算
  2. DP练习(初级):ZigZag
  3. [MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
  4. android学习日记22--Animation动画简介
  5. MySQL 资源大全中文版
  6. JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素
  7. Android ADB启动失败 ADB server out of date
  8. 将字符串写进txt中方式
  9. Android更改imagebutton为纯色方法
  10. 【转】Centos配置yum源