备战蓝桥杯----数据结构及STL应用(基础2)

本文介绍了栈的先进后出特性及其操作方法,包括push、pop和top等;接着讲解了队列的先进先出特性,以及front、back、push和pop等函数;随后讨论了双端队列的特性,如push_front和pop_front,以及优先队列(堆)的使用和优先级设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次我们讲了vector的大致内容,接下来让我们讲一下栈,队列吧!

什么是栈呢?

很简单,我们用的羽毛球桶就是,我们取的球,是最后放的,栈是一种先进后出的数据结构。

方法函数

s.push(e)e元素入栈
s.pop()移除栈顶元素
s.top()取得栈顶元素
s.empty()判断栈是否为空
s.size()返回栈内元素的个数

什么是队列呢?

队列是一种先进先出的数据结构,就像我们去上厕所,先排队的先上。

方法函数

q.front()返回队首元素
q.back()返回队尾元素
q.push(e)尾部添加一个元素
q.pop()删除第一个元素
q.size()返回队列的元素个数
q.empty()判断是否为空

接下来我们讲一下双端队列及优先队列:

双端队列(deque)

顾名思义,就是首尾都可插入和删除的数据结构(它可以用sort进行排序)

方法函数

d.push_back(x)/d.push_front(x)把x插入队尾/队首
d.back()/d.front()返回队尾/队首元素
d.pop_back()/d.pop_front()删除队尾/队首元素
d.erase(iterator it)删除某个元素
d.erase(iterator first,iterator last)删除[first,last)的元素
d.empty()判断其是否为空
d.size()返回其元素数量
d.clear()清空deque

优先队列(十分有用)

本质上是堆,由完全二叉树实现。

初始化定义:

#include<bits/stdc++.h>
using namespace std;
int main(){
    priorty_queue<int> q;}//定义

函数方法

q.top()访问队首元素
q.push()入队
q.pop()队首元素出队
q.size()队列元素个数
q.empty()是否为空

设置优先级

#include<bits/stdc++.h>
using namespace std;
int main(){
    priority_queue<int> pq;//默认为大根堆
    priority_queue<int,vector<int>,greater<int>> q;//小根堆,int为堆中的数据类型
      priority_queue<int,vector<int>,less<int>> q;}//大根堆,int为堆中的数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值