美文网首页
C++ STL 栈和队列详解

C++ STL 栈和队列详解

作者: Ivan_Lan | 来源:发表于2018-11-27 21:19 被阅读7次

一.解释:

1.栈

栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:

image

结论:后进先出(Last In First Out),简称为LIFO线性表。

举个例子:你在洗碗把洗好的碗编号为1、2、、、n依次摞起来,1号在最下面,向上编号依次增加,然后再从上到下把碗放好,这样的话,先被洗的碗,就后被放好。

2.队列

队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front),如图所示:

image

结论:队列的操作原则是先进先出的,所以队列又称作FIFO表(First In First Out)

举个例子:超市付账的时候排队,先来的先排在最前面,后来的后排在队伍最后面,付账时排在队伍前面的先付账,排在后面的后付账。

二.用法

1.头文件

#include<queue>// 队列 
#include<stack>//栈

2.定义方式

stack<int>  s;//参数也是数据类型,这是栈的定义方式
queue<int>  q; //参数是数据类型,这是队列的定义方式

3.常用操作

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

三、例子

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>
#include <vector>
using namespace std;
int main()
{
    queue<int> q;
    stack<char> s;
    q.push(1);
    cout << q.enpty() << endl;
    q.push(2);
    cout << q.front() << endl;
    q.pop();
    cout << q.front() << endl;
    q.pop();
    cout << q.empty() <<endl;
    s.push(a);
    cout << s.top() <<endl;
    s.push(b);
    cout << s.top();
    s,pop();
    cout << s.top();
}

参考:
C++ STL 栈和队列详解

相关文章

  • C++ STL 栈和队列详解

    一.解释: 1.栈 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示...

  • C++(STL) 栈(stack)和队列(queue)(转载)

    在C++标准库(STL)中,实现了栈和队列,方便使用,并提供了若干方法。以下作简要介绍。 1. 栈(stack)说...

  • 【 数据结构 & 算法 】—— 栈、队列、堆

    < 思维导图 > 预备知识:STL stack(堆) 预备知识:STL queue(队列) 使用队列实现栈(栈、队...

  • C++ STL 之 stack 和 queue

    本节我们将介绍 STL 中的 stack 和 queue 容器使用。 栈和队列都是极其重要的数据结构,C++ ST...

  • 求职梳理

    笔试: 基础知识:乱七八糟 算法题:链表数组字符串树、栈、队列 面试: C++基础类继承多态C++11、STL、S...

  • 学习常用链接

    //Lua Lua table详解 Lua 元表详解 云风博客 //Unity Unity知识点 栈和队列 Uni...

  • C++学习四:高级

    STL容器相关 一、vector向量 二、stack栈 三、队列queue 四、list 五、set 六、谓词 七...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 栈和队列

    用栈定义队列(出入栈) 用队列定义栈(数据队列和辅助队列)

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

网友评论

      本文标题:C++ STL 栈和队列详解

      本文链接:https://www.haomeiwen.com/subject/vngnqqtx.html