C++栈和队列

队列(用C++实现队列 是一种后进先出的线型结构,C++实现的代码如下: #include using namespace std; #define MAXLEN 50 typedef struct { char key[10]; char name[20]; int age; }Data; typedef struct { Data nodeData[MAXLEN+1]; int top; }St 阅读详情

栈和队列的基本操作如下:

使用标准库的栈和队列时,先包含相关的头文件

#include<stack>

#include<queue>

定义栈如下:

stack<int> stk;

定义队列如下:

queue<int> q;

栈提供了如下的操作

s.empty()               如果栈为空返回true,否则返回false
s.size()                返回栈中元素的个数
s.pop()                 删除栈顶元素但不返回其值
s.top()                 返回栈顶的元素,但不删除该元素
s.push()                在栈顶压入新元素

队列提供了如下操作:

q.empty()               如果队列为空返回true,否则返回false
q.size()                返回队列中元素的个数
q.pop()                 删除队列首元素但不返回其值
q.front()               返回队首元素的值,但不删除该元素
q.push()                在队尾压入新元素
q.back()                返回队列尾元素的值,但不删除该元素

剑指offer中一道关于栈与队列的题目:

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

基本思路,栈的特点是后进先出,而队列的特点是先进先出。我们可以用两个栈来实现一个队列;一个栈用来压入数据,然后把压入的数据弹出到另一个栈中,在原来栈中处于末端的元素在第二个栈中处于顶端。

class Solution
{
public:
	void push(int node) {
		stack1.push(node);
	}

	int pop() {
		if(stack2.empty())
        {
           /*这种写法是错误的,因为<span style="font-family: arial, STHeiti, 'Microsoft YaHei', 宋体;">stack1.size()是时刻在变换的,在for循环中会出现错误</span>
             for(int i=0;i<stack1.size();i++)
              {
              stack2.push(stack1.top());
              stack1.pop();
          }
           */
             while(!stack1.empty()){
                stack2.push(stack1.top());
                stack1.pop();
            }
        }
        int Temp=stack2.top();
        stack2.pop();
        return Temp;
	}

private:
	stack<int> stack1;
	stack<int> stack2;
};




C++队列 leetcode刷题基础 阅读详情

相关推荐

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用软件复杂度问题。通过原理分析、电路设计拆解实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能可靠性。

weixin_26833939的博客 473

C++队列的用法

前言 在C++标准库中,用C++中的类实现了队列,也实现了他们的常用的一些操作。 一、 1.用法详细 被包含在头文件#include<stack>中。 的定义以及常用操作: stack<int> st; //定义整型,也可以定义其他类型的 stack<T> s; //自定义类型的,T可以是C++的基本数据类型也可以是自定义的数据类型 st.push(e); //把e塞入中,e的类型必须定义时的一样 st.pop(); //把

将~军的博客 2339

【MTK平台】【wpa_supplicant】关于wpa_supplicant/p2p_supplicant.c文件的介绍

本文主要介绍external/wpa_supplicant_8/wpa_supplicant/p2p_supplicant.c 这个文件这个文件里面有个核心的方法就是。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 712

20200927:JavaCpp中队列的区别

JavaCpp中队列的区别题目思路与算法代码实现对比分析两种语言中队列的区别 题目 1.225. 用队列实现 2.232. 用实现队列 3.155. 最小 思路与算法 三道简单力扣习题之前用Java提交过题解,这次用Cpp来进行提交,从而加深二者的stl或者是对应的util工具类中的方法的使用。 代码实现 1.225. 用队列实现 class MyStack { public: /** Initialize your data structure here. */ My

Mr IMMUNIZE的博客 185

C++·队列

本节讲解了C++队列的应用以及底层逻辑,容器适配器的概念,deque双端队列的概念原理。最后重点讲解了优先级队列priority_queue的概念实现,这东西就相当于堆容器,同时讲解了仿函数的基本概念

atlanteep的博客 901

C++:继承多态,自定义封装队列

【代码】C++:继承多态,自定义封装队列

m0_58572142的博客 567

C++ 队列的介绍与使用

使用标准库的队列时,先包含相关的头文件 #include #include 定义如下: stack stk; 定义队列如下: queue q; 提供了如下的操作 s.empty() 如果为空返回true,否则返回false s.size() 返回中元素的个数 s.pop() 删除

Tham 在思索中前行! 2万+

c++ 队列

队列的基本用法

BlackMonkeyHH的博客 631

C++——STL——队列

队列(queue)是只允许在一端进行插入操作,在另一端进行删除操作的线性表,允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。队列的示意图队列中的元素除了具有线性关系外,还具有先进先出的特性。

immnature的博客 1135

C++ 队列的使用

要使用标准库的队列,首先得添加头文件 #include <stack> #include<queue> 定义: stack<int> curStack; 定义队列: queue<int> curQueue; 的操作: curStack.empty()      如果为空返回true,否则返回false; cu...

weixin_30443075的博客 294

C++ 队列 Vector

原帖 http://blog.csdn.net/zhy_cheng/article/details/8090346 使用标准库的队列时,先包含相关的头文件 #include #include 定义如下: stack stk; 定义队列如下: queue q; 提供了如下的操作 [cpp] view plaincopy

周健华的专栏 1万+

C++学习之队列

C++学习之队列

qq_27302885的博客 913

C++队列(stack&queue)

队列 一.stack的介绍使用 (1)概念 ·stack是一种后进先出的容器结构,准确来说stack并不是容器,而是一种容器适配器(对特定类封装作为其底层的容器)。 ...

love_guanghui的博客 4160

C++基础篇 ★ 队列

~队列~

2302_80328146的博客 2026

C++队列

队列是一种先进先出(FIFO)的数据结构,C++标准库提供了。是一种后进先出(LIFO)的数据结构,C++标准库提供了。容器适配器,基于其他容器(如。,但可以指定其他容器(如。容器适配器,通常基于。

zfjkdfhduhsdk的博客 449
上一篇: 数据结构与算法——链表(1)
下一篇: Qt 5.x 应用程序 Windows 部署方法
sufangqi123
博客等级 码龄14年 44粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值