算法题之栈与队列:理论基础与常用操作接口

news/2025/1/24 13:05:29/

栈与队列

(1)理论基础

栈:先进后出的数据结构

队列:先进先出的数据结构

栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。

栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能,STL中栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现)。

所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。

队列中先进先出的数据结构,同样不允许有遍历行为,不提供迭代器, SGI STL中队列一样是以deque为缺省情况下的底部结构。

所以STL 队列也不被归类为容器,而被归类为container adapter( 容器适配器)。

std::stack<int, std::vector<int> > third;  // 使用vector为底层容器的栈
std::queue<int, std::list<int>> third; // 定义以list为底层容器的队列

(2)栈的常用接口

stack.push(x);//向栈中添加元素x
stack.pop();//移除栈顶元素
/*在使用时需要检查stack是否为空,否则访问到空栈的顶部元素,导致段错误*/
int result=stack.top();//返回栈顶的元素
bool is_empty=stack.empty();//判断栈是否为空
int size=stack.size();//获取栈的大小

(3)队列的常用接口

que.push(x);//向队列中添加元素x
que.pop();//移除队头第一个元素
int result=que.front();//返回第一个元素
int result=que.back();//返回最后一个元素
bool is_empty=que.empty();//判断栈是否为空
int size=que.size();//获取队列的大小

http://www.ppmy.cn/news/1565788.html

相关文章

API接口技术:电商数据与反向海淘的桥梁

在数字经济蓬勃发展的今天&#xff0c;电商行业作为其中的重要一环&#xff0c;不断推动着商业模式的创新和变革。电商平台的涌现和消费者购物习惯的变化&#xff0c;使得跨平台电商数据整合成为电商企业提升竞争力、优化用户体验和实现精准营销的重要手段。在这个过程中&#…

时间类型数据处理:基于Python的datetime库和pandas库

一、datetime库常用方法 日期的数据类型主要有两种&#xff1a;一是包含时间的datetime类型&#xff0c;二是不包含时间的date类型。这里的时间指具体的时、分、秒、甚至毫秒。 1、自定义日期、时间、获取本地时间、获取本地日期、获取年份、月份、月号、小时、分钟、秒、星期…

20250120 Flink 中的 Rescaling 算子

什么是 Rescaling&#xff1f; 通俗地说&#xff0c;Rescaling 就是 Flink 中对任务的并行度&#xff08;Parallelism&#xff09;进行调整的过程。简单来说&#xff0c;就是在任务运行时或重新部署时&#xff0c;改变 Flink 应用中算子的工作线程数量&#xff0c;使其能够更好…

机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)

朴素贝叶斯模型 贝叶斯定理&#xff1a; 常见类型 算法流程 优缺点 集成学习算法 基本原理 常见方法 KNN&#xff08;聚类模型&#xff09; 算法性质&#xff1a; 核心原理&#xff1a; 算法流程 优缺点 matlab中的运用 朴素贝叶斯模型 朴素贝叶斯模型是基于贝叶斯…

鸿蒙系统的多端部署

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为技术有限公司开发的面向未来的分布式操作系统&#xff0c;旨在为用户提供跨设备无缝协同体验。鸿蒙系统不仅支持多种终端设备&#xff0c;如手机、平板、智能穿戴、智能家居等&#xff0c;还提供了统一的操作系统和多端部…

OpenCV:高通滤波之索贝尔、沙尔和拉普拉斯

目录 简述 什么是高通滤波&#xff1f; 高通滤波的概念 应用场景 索贝尔算子 算子公式 实现代码 特点 沙尔算子 算子公式 实现代码 特点 拉普拉斯算子 算子公式 实现代码 特点 高通滤波器的对比与应用场景 相关阅读 OpenCV&#xff1a;图像滤波、卷积与卷积核…

65,【5】buuctf web [SUCTF 2019]Upload Labs 2

进入靶场 1,源代码 点击题目时有个就有个admin.php <?php // 引入配置文件 include config.php;class Ad{public $cmd;public $clazz;public $func1;public $func2;public $func3;public $instance;public $arg1;public $arg2;public $arg3;// 构造函数&#xff0c;用于初…

React 路由导航与传参详解

随着单页面应用&#xff08;SPA&#xff09;已经成为主流。React 作为最流行的前端框架之一&#xff0c;提供了强大的路由管理工具 react-router-dom&#xff0c;帮助开发者轻松实现页面导航和传参。本文将详细介绍如何使用 react-router-dom 构建路由导航、传参以及嵌套路由的…