C++ 栈 (数组实现)
2024-08-28 13:50:42
上一篇用链表实现了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";
}
最新文章
- u-boot源码分析之C语言段
- MVC的基类
- 分布式架构中一致性解决方案——Zookeeper集群搭建
- Hibernate的映射组件属性
- MySQL: LEAVE Statement
- C语言初学者代码中的常见错误与瑕疵(14)
- 【转】Sublime text 3 中文文件名显示方框怎么解决
- 20150414---ListView简介(web)
- 在iptables和selinux中放行smb服务
- EF6操作Sqlite数据库的项目兼容性问题
- 云计算-openstack基础构架以及服务方式详解
- 动手搭建第一个小程序音视频Demo
- VMware workstation pro 15 安装Ubuntu(图文教程)
- python3模块: os
- kepware http接口 nodejs开发
- 2017-2018-2 20165207 实验四《Android开发基础》实验报告
- android周期性任务
- 利用Spring MVC 上传图片文件
- git下载和上传项目
- CSS3 线性渐变linear-gradient