上一篇用链表实现了stack,这篇我们采用数组来存储数据,数组更容易理解,直接贴代码

第一、代码实现

 #pragma once
#include <iostream>
using namespace std;
template <typename T> class StackArray {
public:
StackArray(int size) {
this->top = -;
this->maxSize = size;
elements = new T[size];
}
~StackArray() {
delete [] elements;
}
bool push(T t);
T pop();
bool isEmpty();
void print(); private:
int top = -;
int maxSize;
T* elements; }; template<typename T>
bool StackArray<T>::push(T data) {
if (top==maxSize)
{
return false;
}
elements[++top] = data;
return true;
} template<typename T>
T StackArray<T>::pop() {
if (top==-)
{
exit(-);
}
return elements[top--];
} template<typename T>
bool StackArray<T>::isEmpty() {
return top == -;
} template<typename T>
void StackArray<T>::print() {
int loop = top;
while (loop>=)
{
cout << elements[loop] << endl;
loop--;
}
}

第二、测试运行

 #include "pch.h"
#include "StackArray.h"
#include <iostream>
using namespace std; int main()
{
StackArray<int> stack();
stack.push();
stack.push();
stack.push();
stack.push();
stack.pop();
stack.push(); stack.print(); std::cout << "Hello World!\n";
}

C++ 栈 (数组实现)的更多相关文章

  1. c语言编程之栈(数组实现)

    用数组实现的顺序栈,完成了出栈入栈功能. #include"stdio.h" typedef int element; #define max 100 typedef struct ...

  2. LeetCode 155 - 最小栈 - [数组模拟栈]

    题目链接:https://leetcode-cn.com/problems/min-stack/description/ 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的 ...

  3. Python与数据结构[1] -> 栈/Stack[0] -> 链表栈与数组栈的 Python 实现

    栈 / Stack 目录 链表栈 数组栈 栈是一种基本的线性数据结构(先入后出FILO),在 C 语言中有链表和数组两种实现方式,下面用 Python 对这两种栈进行实现. 1 链表栈 链表栈是以单链 ...

  4. php数组与数据栈相关函数

    php数组可以用栈的角度来操作,这其中包含了如下函数,array_pop(),array_push,array_shift(),array_unshift(). array_pop()函数 将数组的最 ...

  5. js 数组对象,数组的使用

    var a =new Array(1,2,3,4,'a','b','c',{x:1,y:2}); alert(a[7].x); //数组之中可以定义数组. var b=['a','b','c']; c ...

  6. 实现O(1)获取最大最小值的栈----java

    原文:http://blog.csdn.net/sheepmu/article/details/38459165 实现O(1)获取最大最小值的栈和队列----java 一.如何实现包含获取最小值函数的 ...

  7. Java栈实现

    栈数组实现一:优点:入栈和出栈速度快,缺点:长度有限(有时候这也不能算是个缺点) public class Stack { private int top = -1; private Object[] ...

  8. php的一些小笔记--数组

    array_chunk  分割数组  第三个参数确定分割的数组是否维持原样key,默认为false array_column 返回数组指定的列 array_combine 合并数组     第一个数组 ...

  9. 数据结构随笔-php实现栈

    栈(Stack)满足后进先出(LIFO)的原则: 下面利用php实现栈的相关操作: 本实例栈的基本操作: 入栈(push):向栈内压入一个元素,栈顶指针指向栈顶元素 出栈(pop): 从栈顶去除元素, ...

  10. 【Java实现】栈和队列就是这么简单

    一.前言 上一篇已经讲过了链表[Java实现单向链表]了,它跟数组都是线性结构的基础,本文主要讲解线性结构的应用:栈和队列 如果写错的地方希望大家能够多多体谅并指正哦,如果有更好的理解的方式也希望能够 ...

随机推荐

  1. 使用lets encrypt证书加密

    1    git clone https://github.com/letsencrypt/letsencrypt 2     ./letsencrypt-auto certonly -d 域名

  2. C++解决error C4996报错

    今天用c++写了个数独程序,在编译过程中报了一个错误: 1>------ 已启动生成: 项目: sudoku, 配置: Debug Win32 ------1> main.cpp1> ...

  3. FFmpeg再学习 -- SDL 环境搭建和视频显示

    继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 一.SDL 简介 参看:WIKI -- Simple DirectMedia Layer 参看:最简单的视音频播放示例9:SD ...

  4. [置顶] 不再迷惑,也许之前你从未真正懂得 Scroller 及滑动机制

    学习本来就是从困惑中摸索问题答案的过程,能够描述出来问题就已经成功了一半.只要发现了困扰你的东西是什么,那么你就离解答出来不远了.----肯尼斯 R. 莱伯德 一直以来,Android 开发中绕不过去 ...

  5. Vue学习笔记 ——v-html

    v-html: 在网页中,后台传来的json数据中包含html标签,将该json数据绑定到Vue.js中对象中,对该对象进行for循环,发现数据中的html标签不能被解析,而是当作字符显示出来 解决: ...

  6. SQL Server 批量插入数据

    请看代码: 创建表值参数类型: 请看代码:

  7. linux远程win7教程

    http://jingyan.baidu.com/article/c275f6bacd2227e33c756754.html 1 在ubuntu下搜索Remmina(超级方便,应该也可以控制linux ...

  8. 【剑指offer】连续子数组的最大和,C++实现

    原创博文,转载请注明出处!本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 # 题目       输入一个整形数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求 ...

  9. js 字符串和数组注意点

    var a="foo"; var b=[ "f","o","o"]; a[1]="o"; b[1]= ...

  10. 【java多线程】用户线程和守护线程的区别

    java中线程分为两种类型:用户线程和守护线程.通过Thread.setDaemon(false)设置为用户线程:通过Thread.setDaemon(true)设置为守护线程.如果不设置次属性,默认 ...