`
CrazyMizzz
  • 浏览: 24233 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

c++ 用数组实现栈类

阅读更多
#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;
	}




};
3
1
分享到:
评论

相关推荐

    用数组实现一个栈

    在计算机科学中,栈是一种非常基础且重要的数据结构,它遵循“后进先出”(LIFO)的原则。...在实际应用中,更常见的做法是使用动态内存分配(如std::vector)或者C++标准库提供的std::stack容器来实现栈。

    用数组存放栈元素的栈类模板

    用C++实现的栈类模板,这只是一个用数组实现存储的栈,如果你想要链表实现的版本,请留言~

    基于动态数组的栈

    使用动态数组实现栈 以下是一个简单的动态数组栈实现: ```cpp #include class MyStack { private: int* arr; // 动态数组 int capacity; // 当前容量 int size; // 当前元素个数 public: // 构造函数 ...

    利用数组实现双端栈,插入,删除

    在数组中实现栈,我们可以直接使用数组的索引来表示栈顶的位置。对于双端栈,我们需要在数组的两端都维护一个栈顶指针,一个指向前端,一个指向后端。 数组实现双端栈的步骤如下: 1. 初始化:创建一个固定大小的...

    c++指针数组.rar

    这可以通过`new`运算符实现,但别忘了在使用完毕后用`delete`释放内存。 3. 函数参数:指针数组可以作为函数参数传递,用于实现对一组数据的处理。例如: ```cpp void printValues(int* arr[], int size) { for ...

    数组顺序栈.rar

    数组顺序栈是计算机科学中数据结构的基础概念,它是一种基于数组实现的栈数据结构。栈是一种后进先出(LIFO)的数据结构,通常用于执行递归操作、内存管理、表达式求值等任务。在数组顺序栈中,元素的添加(压栈)和...

    C++模版类实现顺序栈、链栈

    首先,**顺序栈**是基于数组实现的栈。在C++中,可以定义一个名为`SequentialStack`的模版类,其内部使用动态分配的数组存储元素。模版参数`T`代表栈中可存储的任意类型数据。类通常包含以下几个成员: 1. **私有...

    心希盼 c++ 数据结构 栈

    在C++中实现栈,通常有两种方式:一是使用标准模板库(STL)中的`stack`容器,二是自定义栈结构。在这个案例中,描述提到已经基本实现了栈的功能,这可能指的是使用了自定义栈结构。自定义栈通常包括两个主要部分:...

    用数组栈实现表达式求值(数据结构)(自制)

    在这个项目中,“用数组栈实现表达式求值”是指使用数组来模拟栈这一数据结构,处理数学表达式的计算,特别是涉及括号配对的问题。 数组栈在表达式求值中的应用主要体现在中缀表达式转后缀表达式(逆波兰表示法)和...

    c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈.pdf

    在C++编程中,栈是一种常见的数据结构,它遵循“后进先出”(LIFO,Last In First Out)的原则。...此外,还可以考虑使用动态内存分配来适应不同大小的栈,或者使用STL中的`std::stack`容器来简化栈的实现。

    数组两端栈.cpp 使用数组实现的两端栈

    使用数组实现的两端栈 对应于数据机构与算法分析(c++版)第三版或第二版 Clifford A.Shaffer 重庆大学使用教材

    用c++编写的程序数组栈算法

    在给定的代码片段中,我们可以看到一种使用数组实现栈的C++程序设计方法。这种方法利用了一个固定大小的数组`stack`来存储栈中的元素,并使用两个整型变量`top[2]`来追踪栈顶的位置。这里的`top`数组实际上用于管理...

    C++实现N栈共享堆栈,数组

    - `stack.cpp`:实现栈结构体和栈管理器类的成员函数。 - `build.cpp`:可能包含用于测试和构建共享堆栈实例的代码。 - `main.cpp`:主程序,调用栈管理器来创建和操作栈,并进行测试。 - `stack.h`:声明栈...

    约瑟夫环问题(数组实现,链表实现

    为了优化算法,还可以使用栈或队列来辅助处理,例如,将被淘汰的节点放入栈中,以避免在主循环中频繁修改链表结构。 总的来说,约瑟夫环问题的解决体现了数据结构和算法的巧妙结合,它不仅考察了基本的数据结构操作...

    用c++的类模板实现通用堆栈结构

    本文将详细介绍如何利用C++中的类模板特性来构建一个通用的堆栈结构,该结构既可以适用于顺序存储(使用数组实现),也可以应用于链式存储(使用指针实现)。通过类模板,我们能够创建灵活的数据结构,从而提高代码...

    vc++迷宫 vc++迷宫 用数组实现

    在二维数组中,可以通过递归函数来实现,使用栈来保存当前位置。 2. **广度优先搜索(BFS, Breadth-First Search)**:BFS使用队列来存储待访问的节点,确保找到最短路径。在迷宫问题中,BFS可以找到从起点到终点的...

    模板线性表,链表,队列,栈的实现(C++实现)

    C++中可以使用结构体或类来表示链表节点,通过指针操作实现节点的插入、删除和遍历。链表在内存管理上更为灵活,适合频繁的插入和删除操作,因为这些操作只需要改变几个指针,而不需要移动大量元素。 3. **队列**:...

    c++链式栈类

    在C++编程中,链式栈是一种非常重要的数据结构,它是栈的一种实现方式,与顺序栈(数组实现)相比,链式栈具有更好的灵活性。在本项目中,我们重点讨论如何使用C++来定义和实现一个链式栈类,以及验证其基本功能,如...

    接雨水(利用数组实现栈)

    接雨水,效率高于leetcode中所有提交记录。思想简单,代码易读

    C++实现栈数据结构

    接下来,我们看`MyStack.cpp`,这是实现栈类功能的源代码文件。它将包含上述成员函数的具体实现,例如: ```cpp #include "MyStack.h" MyStack::MyStack(int size) { arr = new int[size]; if (arr == nullptr) ...

Global site tag (gtag.js) - Google Analytics