143.栈和队列:用队列实现栈(力扣)

devtools/2024/9/23 7:34:22/

题目描述

代码解决

class MyStack {
public:queue<int> que; // 定义一个队列用于实现栈// 构造函数,初始化队列MyStack() {}// 向栈中推入元素 xvoid push(int x) {que.push(x); // 使用队列的 push 方法将元素 x 添加到队列尾部}// 从栈中弹出并返回栈顶元素int pop() {int len = que.size(); // 获取队列的长度len--; // 因为我们要把最后一个元素弹出,所以只需要循环 len-1 次// 将队列中的前 len-1 个元素依次移到队列尾部while (len--) {que.push(que.front()); // 将队头元素添加到队尾que.pop(); // 弹出队头元素}int result = que.front(); // 获取此时队头元素,即栈顶元素que.pop(); // 弹出队头元素return result; // 返回栈顶元素}// 获取栈顶元素int top() {return que.back(); // 返回队列的最后一个元素,即栈顶元素}// 检查栈是否为空bool empty() {return que.empty(); // 返回队列是否为空}
};/*** Your MyStack object will be instantiated and called as such:* MyStack* obj = new MyStack();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->top();* bool param_4 = obj->empty();*/
  1. MyStack有一个私有成员变量que,这是一个队列,用于存储栈的元素。

  2. 构造函数MyStack()没有参数,它只是初始化了队列que

  3. push(int x)方法用于将元素x推入栈。它使用队列的push方法将元素x添加到队列尾部。

  4. pop()方法用于从栈中弹出并返回栈顶元素。首先,它获取队列的长度,然后将队列中的前len-1个元素依次移到队列尾部。最后,它返回此时队列头部的元素,即栈顶元素。

  5. top()方法用于获取栈顶元素。它返回队列的最后一个元素,即栈顶元素。

  6. empty()方法用于检查栈是否为空。它返回队列是否为空的布尔值。


http://www.ppmy.cn/devtools/42625.html

相关文章

Android低代码开发 - MenuPanel的源码剖析和基本使用

看了我上篇文章Android低代码开发 - 像启蒙和乐高玩具一样的MenuPanel 之后&#xff0c;本篇开始讲解代码。 源代码剖析 首先从MenuPanelItemRoot讲起。 package dora.widget.panelinterface MenuPanelItemRoot {/*** 菜单的标题。** return*/var title: String?fun hasTit…

xcode配置快速打开终端命令行工具教程

以往我们使用idea编辑器或者vscode编辑器的时候&#xff0c;我们可以快速的在编辑器下面打开终端进行相关的操作&#xff0c;但是在xcode里面却没有这么方便的功能按钮&#xff0c;真的不是很习惯&#xff0c;所以这次就来给xcode配置这么一个方便的功能。 idea的Terminal 这…

json web token及JWT学习与探索

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案 作用&#xff1a; 主要是做鉴权用的登录之后存储用户信息 生成得token(令牌)如下 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg3Njc0NDkyLCJleHAiOjE2ODc3NjA4OTJ9.Y6eFG…

MySQL——存储过程,触发器

BaiduComate: # 问题1&#xff1a; # 问题1&#xff1a; 帮我创建两个表student与score表&#xff0c;要求student表有id&#xff0c;createDate&#xff0c;userName&#xff0c;phone&#xff0c;age&#xff0c;sex&#xff0c;introduce&#xff0c; 要求score表有id&…

为什么建立数据库连接耗时?究竟耗时多久?

数据库连接从连接池中取这已经是大家的共识了&#xff0c;因为频繁的建立或者关闭连接代价太大&#xff0c;那么代价究竟有多大&#xff1f; 我们先准备一个简单的数据库连接代码段 public static void main(String[] args) throws ClassNotFoundException, SQLException, Int…

清空了电脑回收站,之前的文件还能否恢复?

电脑已成为我们日常生活中不可或缺的一部分。我们在电脑上处理文档、保存图片、下载视频等&#xff0c;而电脑中的回收站则成为我们处理不再需要文件的一个便捷工具&#xff0c;当我们想要删除某些文档的话&#xff0c;它并不是立即从硬盘上消失&#xff0c;而是被系统移动到了…

CSS学习笔记:空间转换——使用transform属性实现元素在空间内的位移、旋转、缩放等效果

透视 使用perspective属性实现透视效果 什么是透视&#xff1a;近大远小&#xff0c;近实远虚 说明&#xff1a;perspective的值指的是透视距离&#xff0c;透视距离也称为视距&#xff0c;所谓的视距就是人的眼睛到屏幕的距离 立体呈现 transform-style: preserve-3d persp…

ts: 泛型

泛型约束 <T extends object >泛型参数默认值 <T {}> // 定义时设置了默认值&#xff0c;使用时可以不传递泛型参数 type Chainable<T extends object {}> {option<K extends string, V>(key: K, value: V): Chainable<T & {[P in K]: V}>…