数据结构-优先队列与栈
Posted Earnoise
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构-优先队列与栈相关的知识,希望对你有一定的参考价值。
本文将解释优先队列与栈(不讲单调栈!但可以去文章里的链接去看~)
数据结构-优先队列与栈
今天不多BB,直接讲2个数据结构!
优先队列(priority queue)
优先队列没什么好说的,和队列相似,同样遵循FIFO,但优先队列中的数据按升序或者降序排列,定义如下:
#include <bits/stdc++.h>
#include <queue> // 队列头文件中有优先队列
priority_queue <typename, vector<typename>, less/greater<typename> > name;
具体解释一下,typename
代表队列中存储的元素类型,less/greater
代表升序/降序
对于优先队列,他的操作如下:
priority_queue <int, vector<int>, less<int> > s;
s.pop() // 弹出队列顶部的元素
s.push(x) // 在队列中弹入x
s.size() // int类型,返回s的大小
s.empty() // bool类型,如果s为空返回true,否则返回false
s.top() // 返回s的顶部元素
栈(stack)
栈也是是一种特殊的线性表,他的性质只允许元素从最后入,从最后出,所以他也满足FILO(First In Last Out)
性质,也就是先进后出。
PS:没有优先栈,只有单调栈,这是个很复杂的东西,可以去看这里的题解
我们也不是用函数来模拟了,直接讲:
#include <stack> // 栈的头文件
stack <typename> s;
s.pop() // 弹出栈顶部的元素
s.push(x) // 在栈中弹入x
s.size() // int类型,返回s的大小
s.empty() // bool类型,如果s为空返回true,否则返回false
s.top() // 返回s的顶部元素
以上就是本篇的全部内容啦!希望能给你带来新的认知!以上!
本文来自博客园,作者:Earnoise,转载请注明原文链接:https://www.cnblogs.com/Earnoise/p/stl-priority-queue-and-stack.html
以上是关于数据结构-优先队列与栈的主要内容,如果未能解决你的问题,请参考以下文章
广度优先搜索(BreadthFirstSearch)& 迪克斯特拉算法 (Dijkstra's algorithm)