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

栈与队列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.lqws.cn/news/102637.html

相关文章:

  • 新版 Xcode 中 CoreData 模型编辑器显示拓扑图功能取消的替代方案
  • 三、Sqoop 全量导入核心命令
  • 大模型赋能:金融智能革命中的特征工程新纪元
  • 区块链技术赋能供应链金融:重塑信任与效率
  • 解锁Java多级缓存:性能飞升的秘密武器
  • 黑马Java面试笔记之 微服务篇(业务)
  • ASR技术(自动语音识别)深度解析
  • vscode配置lua
  • Visual Studio Code
  • 原子操作与非原子操作
  • leetcode hot100(两数之和、字母异位词分组、最长连续序列)
  • smartGit 试用突破30天
  • CSS设置移动端页面底部安全距离
  • PostgreSQL的扩展 passwordcheck
  • Git 使用规范指南
  • Ⅲ-2.计算机二级选择题(三大结构之选择结构)
  • ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源
  • JVM—垃圾收集算法和HotSpot算法实现细节
  • 嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
  • Java Lambda 表达式的缺点和替代方案
  • 为何选择Spring框架学习设计模式与编码技巧?
  • STM32F103C8T6:解锁无限可能的应用之旅
  • STM32单片机编程中标志变量的思想无处不在
  • 焊缝缺陷焊接缺陷识别分割数据集labelme格式5543张4类别
  • 人工智能在智能教育中的创新应用与未来趋势
  • MybatisPlus--核心功能--service接口
  • 登录vmware vcenter报vSphere Client service has stopped working错误
  • 悟饭游戏厅iOS版疑似流出:未测试版
  • 基于Halcon深度学习之分类
  • 历史记录隐藏的安全风险