#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(); //打印栈内元素
}

转载于:https://www.cnblogs.com/xiaogua918/p/4181589.html

栈(顺序存储)C++模板实现相关推荐

  1. C语言栈顺序存储的数据结构

    typedef int SElemType ; typedef struct{SElemType data [ MAXSIZE ];int top ; } SqStack , * SqtackPtr ...

  2. 栈顺序存储 - Java实现

    栈的顺序存储结构实现 package com.kiger.Sequence;import java.util.Arrays;/*** @ClassName SequenceStack* @Descri ...

  3. python全栈开发_day52_html模板继承和静态配置

    今日内容 模板层(模板语法) 标签 过滤器 自定义标签,过滤器,inclusion_tag 模板的继承 模板的导入 后端朝前端页面传递数据的方式 # 第一种 return render(request ...

  4. 大话数据结构 06:栈 顺序存储结构

    基础内容 栈的基础操作: 顺序栈代码 #include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define ...

  5. Python写数据结构:栈(顺序存储结构)

    #!/usr/bin/python3.5 #_*_coding:utf-8_*_class Stack():def __init__(self,capacity):self.stack = [None ...

  6. Python全栈:Django模板

    文章目录 1 模板引擎介绍和选择 2 Django模板相关配置 templates相关配置 3 模板变量的使用 渲染静态图片 渲染 Python中的对象 4 模板标签的使用 循环控制 条件控制 模板注 ...

  7. Go语言全栈开发:模板语言

    html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/templ ...

  8. 关于手动栈 (模板)

    首先  在c++中,很多人会说有STL库,调用一个stack不就行了吗?...   关于这个....好吧,你随意....   但是,用数组模拟栈,更加灵活...   请记住各有各的好处....   开 ...

  9. C语言实现 二叉树 的非递归遍历(详细图解)(基于栈的顺序存储)

    分析主要分析二叉树的非递归遍历,基于栈顺序存储二叉树的节点. 1 实现思路(具体的分析过程会在以下函数实现部分分析,中序遍历如下) 将树的所有节点标志位置为假(0),并将根节点压入栈中 进入循环,只要 ...

  10. C++ 链栈函数模板解决 迷宫问题(DPS) 学习笔记

    文章目录 前言 一.栈的链式存储(链栈,链式堆栈)是什么? 二.链栈 的函数模板的编写 1.源码分享 2.调用方式 三.路径函数的编写 1.源码分享 2.相关调用函数 以及define 和 struc ...

最新文章

  1. 关于网络的自动协商属性
  2. LibreOJ #113. 最大异或和
  3. vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)
  4. vb杨辉三角代码编写_「二次开发」——基于VB.NET的NX UG软件二次开发基础
  5. MySQL Bit Functions and Operators(二进制方法)
  6. 解析Java内存区域
  7. centos 6.7 安装php7
  8. CentOS6.5搭建MySQL5.1主从复制
  9. Go语言编程快速入门
  10. 清理C盘内存有用的办法
  11. 《别做“正常”的傻瓜(全新第2版)》
  12. 微软云服务器搭建,75分钟快速构建微软Server 2012私有云
  13. bin/hive出错:Exception in thread main java.lang.RuntimeException: java.net.ConnectException: Call Fr
  14. matlab的gccphat转C语言,Python中的GCCPHAT互相关
  15. 求Python工程师推荐
  16. android adb interface驱动安装
  17. 不同音视频传输协议的对比
  18. python实现网关_用python实现与小米网关通讯
  19. 治愈大量患者,荣获一致认可
  20. 最简易网络带宽测量(PING)

热门文章

  1. 邮政银行贷款迟还4个小时就造成信用逾期,如何解决?
  2. 无广告的pdf阅读器_奥利给!免费无广告!功能超齐全!这样的良心国产软件,真的不多了!...
  3. python变量定义大全_详解python变量与数据类型
  4. android tag的使用方法,Android:如何使用Html.TagHandler?
  5. python3 规则引擎_几个常见规则引擎的简单介绍和演示
  6. 南京师范大学874计算机答案,2017年南京师范大学电气与自动化工程学院874电路考研题库...
  7. python计算一年有多少天_Python 案例 004 (计算当前时间是一年中的第几天)
  8. 各Rendering Path技术以及其在Unity中的实现
  9. 【LOJ】 #2540. 「PKUWC2018」随机算法
  10. ajax跨域问题(php)