当前位置: 首页 > java >正文

栈与队列1

232 用栈实现队列

相关栈的函数,top ,push ,pop,empty等函数理解
其次理解this指针的作用,this->pop()表示调用当前对象的pop()车工原函数

#include <stack>
class MyQueue{
public:stack<int> stIn;//用两个栈实现功能stack<int> stOut;MyQueue(){  //初始化}void push(int x){stIn.push(x); //压入函数简单,直接把x压入到In栈中}int pop(){//弹出//当stOut为空的时候,从stIn里导入全部数据(关键)if(stOut.empty()){ //empty函数while(!stIn.empty()){//当stIn不为空时stOut.push(stIn.top());  //将栈顶元素放到stOut中stIn.pop();//清理}}int result = stOut.top();stOut.pop();return result;}int peek(){int res = this->pop();  //stOut.push(res);return res;}bool empty(){return stIn.empty() & stOut.empty();}
};

225 用队列实现栈

class MyStack {
public:queue<int> que;MyStack() {}void push(int x) {que.push(x);}int pop() {int size = que.size();size--;while (size--) { // 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部que.push(que.front());que.pop();}int result = que.front(); // 此时弹出的元素顺序就是栈的顺序了que.pop();return result;}int top(){int size = que.size();size--;while (size--){// 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部que.push(que.front());que.pop();}int result = que.front(); // 此时获得的元素就是栈顶的元素了que.push(que.front());    // 将获取完的元素也重新添加到队列尾部,保证数据结构没有变化que.pop();return result;}bool empty() {return que.empty();}
};

225 用队列实现栈

这个要注意的就是在栈弹出元素的时候,需要将这个队列的元素统统挪到最后一个元素之后

class MyStack {
public:queue<int> que;MyStack() {}void push(int x) {que.push(x);}int pop() {int size = que.size();size--;while (size--) { // 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部que.push(que.front());que.pop();}int result = que.front(); // 此时弹出的元素顺序就是栈的顺序了que.pop();return result;}int top(){int size = que.size();size--;while (size--){// 将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部que.push(que.front());que.pop();}int result = que.front(); // 此时获得的元素就是栈顶的元素了que.push(que.front());    // 将获取完的元素也重新添加到队列尾部,保证数据结构没有变化que.pop();return result;}bool empty() {return que.empty();}
};

20

http://www.xdnf.cn/news/10735.html

相关文章:

  • Go的隐式接口机制
  • 记录被mybatis一级缓存坑的问题
  • electron下载文件
  • 基于大模型的慢性硬脑膜下血肿预测与诊疗系统技术方案
  • [蓝桥杯]实现选择排序
  • redhat变更旧nas挂在参数不生效
  • 【Java】mybatis-plus乐观锁与Spring重试机制
  • 高效易用的 MAC 版 SVN 客户端:macSvn 使用体验
  • 本地部署 Jenkins 并实现外部访问(Windows 版本)
  • PyTorch——线性层及其他层介绍(6)
  • 【HarmonyOS 5】鸿蒙APP使用【团结引擎Unity】开发的案例教程
  • LEAP模型能源需求/供应预测、能源平衡表核算、空气污染物排放预测、碳排放建模预测、成本效益分析、电力系统优化
  • 【macbook】触控板手势
  • 数据解析:一文掌握Python库 lxml 的详细使用(处理XML和HTML的高性能库)
  • 基于 COM 的 XML 解析技术(MSXML) 的总结
  • CSS设置移动端页面底部安全距离
  • 【Hot 100】279. 完全平方数
  • PopupImageMenuItem 无响应
  • AXURE-动态面板
  • 最优包含--字符串dp
  • 解锁技术文档撰写秘籍:从混沌到清晰的蜕变之旅
  • 帝可得 - 策略管理
  • 利用Python 进行自动化操作: Pyautogui 库
  • SQL注入漏洞-上篇
  • 正点原子lwIP协议的学习笔记
  • xmake的简易学习
  • CppCon 2014 学习:Cross platform GUID association with types
  • 蛋白质设计软件LigandMPNN介绍
  • 宇树科技更名“股份有限公司”深度解析:机器人企业IPO前奏与资本化路径
  • R1-Searcher++新突破!强化学习如何赋能大模型动态知识获取?