#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack():top(-1){}
void push(const T &item){//将元素压入栈
assert(!isFull());
list[++top] = item;
}
T pop(){ //将栈顶元素弹出栈
assert(!isEmpty());
return list[top--];
}
void clear(){
top = -1;
}
const T &peek() const{//访问栈顶元素
assert(isEmpty());
return list[top];
}
bool isEmpty()const{
return top == -1;
}
bool isFull()const{
return top == SIZE - 1;
}
};
分享到:
相关推荐
C++ 用数组实现一个栈 很经典的 大家可以看看 学习学习
用C++实现的栈类模板,这只是一个用数组实现存储的栈,如果你想要链表实现的版本,请留言~
数组实现双端栈 数据结构!!! 顶 利用数组实现双端栈,插入,删除
使用数组实现的两端栈 对应于数据机构与算法分析(c++版)第三版或第二版 Clifford A.Shaffer 重庆大学使用教材
使用C++描述,数组实现的栈。实现了栈的基本操作。包括拷贝构造函数和操作符重载。
c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈
基本实现了栈的功能 详细的在“心希盼 栈.doc”
接雨水,效率高于leetcode中所有提交记录。思想简单,代码易读
通过二维数组以及栈的应用实现迷宫的深度搜索,利用栈存储搜索路径,其中搜索方向为八个,首先从南开始。
用c++编写的程序,实现对栈的数组算法。。
c++ 利用数组做底层存储,实现入栈 出栈 栈空/满判断等基本操作,计算器实现加减乘除简单功能 ,支持中缀表达式
用c++实现的N栈共享,基于堆栈的操作,后进先出,栈的容量可以不固定,可以由用户来动态初始化堆栈长度
本程序采用模板类实现,利用一组地址连续的存储单元依次存放从栈底到栈顶的数据元素,将数据类型为T的数据元素存储在数组中,用count记录存在数组中的元素个数。从具体的实现过程来看,本程序模板类mystack包括...
队列关于数组与链表的实现, linux c语言
用c++类模板实现顺序栈,没有运用动态数组,适合初学者
在C++中,顺序栈的实现通常涉及一个类,该类包含一个数组来存储栈中的元素,以及一个表示栈顶位置的整数。以下是一个简单的顺序栈实现的示例说明: 首先,我们定义一个顺序栈类SequentialStack,并在其构造函数中...
首先,设置栈的最大深度(因为这里的栈是由数组实现的,在函数引用传递的过程中必须设置大小)。 第二步,初始化栈,就是只要把栈顶指针设置为-1(为什么设置为-1在注意事项里说)。 第三步,是判断栈满和判断栈空...
1.线性表:数据存储像一条线一样的结构,每个线性表上的数据最多只有前和后的两个方向,如数组、链表、队列、栈等都是这种结构,所以实现的数组的动态操作,其他结构也可轻易的类似实现。更重要的是,在这之后看源码...
栈是基本的数据结构。其特点是添加和访问数据都在线性表的一端(头端)。数据访问遵循先进后出(FILO)的原则。...本程序用单向链表实现栈。是C++、数据结构及算法学习的一个小小练习。供大家参考。
利用C++实现以下经典数据结构与算法:线性表(顺序表、链表、静态链表、三元组)、栈(双栈、共享栈)、队列(任务调度、循环队列、双向队列、链队列)、数组(特殊矩阵、稀疏矩阵压缩)、串(朴素模式匹配、KMP算法...