栈(顺序存储)C++模板实现
#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++模板实现相关推荐
- C语言栈顺序存储的数据结构
typedef int SElemType ; typedef struct{SElemType data [ MAXSIZE ];int top ; } SqStack , * SqtackPtr ...
- 栈顺序存储 - Java实现
栈的顺序存储结构实现 package com.kiger.Sequence;import java.util.Arrays;/*** @ClassName SequenceStack* @Descri ...
- python全栈开发_day52_html模板继承和静态配置
今日内容 模板层(模板语法) 标签 过滤器 自定义标签,过滤器,inclusion_tag 模板的继承 模板的导入 后端朝前端页面传递数据的方式 # 第一种 return render(request ...
- 大话数据结构 06:栈 顺序存储结构
基础内容 栈的基础操作: 顺序栈代码 #include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define ...
- Python写数据结构:栈(顺序存储结构)
#!/usr/bin/python3.5 #_*_coding:utf-8_*_class Stack():def __init__(self,capacity):self.stack = [None ...
- Python全栈:Django模板
文章目录 1 模板引擎介绍和选择 2 Django模板相关配置 templates相关配置 3 模板变量的使用 渲染静态图片 渲染 Python中的对象 4 模板标签的使用 循环控制 条件控制 模板注 ...
- Go语言全栈开发:模板语言
html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/templ ...
- 关于手动栈 (模板)
首先 在c++中,很多人会说有STL库,调用一个stack不就行了吗?... 关于这个....好吧,你随意.... 但是,用数组模拟栈,更加灵活... 请记住各有各的好处.... 开 ...
- C语言实现 二叉树 的非递归遍历(详细图解)(基于栈的顺序存储)
分析主要分析二叉树的非递归遍历,基于栈顺序存储二叉树的节点. 1 实现思路(具体的分析过程会在以下函数实现部分分析,中序遍历如下) 将树的所有节点标志位置为假(0),并将根节点压入栈中 进入循环,只要 ...
- C++ 链栈函数模板解决 迷宫问题(DPS) 学习笔记
文章目录 前言 一.栈的链式存储(链栈,链式堆栈)是什么? 二.链栈 的函数模板的编写 1.源码分享 2.调用方式 三.路径函数的编写 1.源码分享 2.相关调用函数 以及define 和 struc ...
最新文章
- 关于网络的自动协商属性
- LibreOJ #113. 最大异或和
- vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)
- vb杨辉三角代码编写_「二次开发」——基于VB.NET的NX UG软件二次开发基础
- MySQL Bit Functions and Operators(二进制方法)
- 解析Java内存区域
- centos 6.7 安装php7
- CentOS6.5搭建MySQL5.1主从复制
- Go语言编程快速入门
- 清理C盘内存有用的办法
- 《别做“正常”的傻瓜(全新第2版)》
- 微软云服务器搭建,75分钟快速构建微软Server 2012私有云
- bin/hive出错:Exception in thread main java.lang.RuntimeException: java.net.ConnectException: Call Fr
- matlab的gccphat转C语言,Python中的GCCPHAT互相关
- 求Python工程师推荐
- android adb interface驱动安装
- 不同音视频传输协议的对比
- python实现网关_用python实现与小米网关通讯
- 治愈大量患者,荣获一致认可
- 最简易网络带宽测量(PING)
热门文章
- 邮政银行贷款迟还4个小时就造成信用逾期,如何解决?
- 无广告的pdf阅读器_奥利给!免费无广告!功能超齐全!这样的良心国产软件,真的不多了!...
- python变量定义大全_详解python变量与数据类型
- android tag的使用方法,Android:如何使用Html.TagHandler?
- python3 规则引擎_几个常见规则引擎的简单介绍和演示
- 南京师范大学874计算机答案,2017年南京师范大学电气与自动化工程学院874电路考研题库...
- python计算一年有多少天_Python 案例 004 (计算当前时间是一年中的第几天)
- 各Rendering Path技术以及其在Unity中的实现
- 【LOJ】 #2540. 「PKUWC2018」随机算法
- ajax跨域问题(php)