C++ 栈 (数组实现)
上一篇用链表实现了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++ 栈 (数组实现)的更多相关文章
- c语言编程之栈(数组实现)
用数组实现的顺序栈,完成了出栈入栈功能. #include"stdio.h" typedef int element; #define max 100 typedef struct ...
- LeetCode 155 - 最小栈 - [数组模拟栈]
题目链接:https://leetcode-cn.com/problems/min-stack/description/ 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的 ...
- Python与数据结构[1] -> 栈/Stack[0] -> 链表栈与数组栈的 Python 实现
栈 / Stack 目录 链表栈 数组栈 栈是一种基本的线性数据结构(先入后出FILO),在 C 语言中有链表和数组两种实现方式,下面用 Python 对这两种栈进行实现. 1 链表栈 链表栈是以单链 ...
- php数组与数据栈相关函数
php数组可以用栈的角度来操作,这其中包含了如下函数,array_pop(),array_push,array_shift(),array_unshift(). array_pop()函数 将数组的最 ...
- 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 ...
- 实现O(1)获取最大最小值的栈----java
原文:http://blog.csdn.net/sheepmu/article/details/38459165 实现O(1)获取最大最小值的栈和队列----java 一.如何实现包含获取最小值函数的 ...
- Java栈实现
栈数组实现一:优点:入栈和出栈速度快,缺点:长度有限(有时候这也不能算是个缺点) public class Stack { private int top = -1; private Object[] ...
- php的一些小笔记--数组
array_chunk 分割数组 第三个参数确定分割的数组是否维持原样key,默认为false array_column 返回数组指定的列 array_combine 合并数组 第一个数组 ...
- 数据结构随笔-php实现栈
栈(Stack)满足后进先出(LIFO)的原则: 下面利用php实现栈的相关操作: 本实例栈的基本操作: 入栈(push):向栈内压入一个元素,栈顶指针指向栈顶元素 出栈(pop): 从栈顶去除元素, ...
- 【Java实现】栈和队列就是这么简单
一.前言 上一篇已经讲过了链表[Java实现单向链表]了,它跟数组都是线性结构的基础,本文主要讲解线性结构的应用:栈和队列 如果写错的地方希望大家能够多多体谅并指正哦,如果有更好的理解的方式也希望能够 ...
随机推荐
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星云 ...
- 基于Ubuntu16.04的GeForce GTX 1080驱动安装,遇到的问题及对应的解决方法
1.在主机上插上GPU之后,查看设备: $ nvidia-smi Tue Dec :: +------------------------------------------------------- ...
- [Python] json 报错'xxx is not JSON serializable'的处理方法
predictions = self.model.predict(x_data, verbose=0)[0] y_pred_idx = np.argmax(predictions) y_pred_pr ...
- [Linux] 虚拟环境的配置和使用 virtualenv
1.安装 sudo apt-get install python-virtualenv 2.使用 创建虚拟环境: virtualenv [虚拟环境名称] 例如: virtualenv env_test ...
- EXC_BAD_ACCESS(code...)坏内存访问 调试
一般很多人遇到这个 都会崩溃 断点一般 找不到 原因 : 只能按照一步一步走readView的模式 : 一般是问题是 相互包含 比如 view2 在view1 上 但是在view2 又创建了一 ...
- Android虚拟、实体键盘不能同时使用?
/****************************************************************************** * Android虚拟.实体键盘不能同时 ...
- grub2 设置Windows为默认启动系统
1. 首先找到Windows的菜单menuentry.<blockquote># cat /boot/grub2/grub.cfg | grep Windows 结果: menuentry ...
- [译]TLS中的RC4被攻破了,现在该怎么办?
原文链接:https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what 原文发表时间 ...
- softmax与logistic关系
Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问 ...
- 遍历list方法
[理论] for(String s : list){ System.out.print(s+"/t"); } for(int i = 0;i<list.size( ...