栈和 队列 和 优先队列的 简单操作(初学者)
来源:互联网 发布:ubuntu apt 安装jdk 编辑:程序博客网 时间:2024/06/05 03:03
1. 栈
关于栈简单的理解就是一个 “先进后出”的容器。下面为基本的操作:#include <stack> 头文件stack<int> s 创建一个 存储 int 型 的栈 ,类似的 int 还可以 改为:double float char 或者 结构体s.push(x) 让 x 这个元素进栈s.pop() 栈中的 第一个 元素出栈s.top() 调用栈的第一个元素s.enpty() 判断栈是否为空,如果为空 返回 1,如果不为空 返回 0
2.队列
上面提到 栈的 理解,这里 队列的理解就是 一个 “先进先出” 的容器,下面是基本操作:#include <queue> 头文件queue<int> q 创建一个空队列 <int> 这里 与上面 栈的功能相同q.push(x) 进队列q.front() 调用队列的第一个元素q.pop() 队列中的第一个元素 出队列q.empty() 判断 队列是否为空,若为空 返回 1, 若不为空 返回 0
3.优先队列
上面已经简单的介绍了队列,那么优先队列呢与上面的队列 和 栈 是不同的,所谓优先就是 里面存储的元素 都对应一个 优先值,哪个元素的优先值大 那么就优先 出去。这里 优先队列 我们存储 结构体 元素 , 比较 容易 体现出 优先 二字的所在.下面是 一些基础操作:
// 下面是一个 排队看病的问题 很典型的 优先队列问题#include <iostream>#include <stack>#include <queue> // 头文件using namespace std;struct node // 定义一个结构体 { int power; // 病情的 严重性 int order; // 排队的顺序};bool operator < (const node s1, const node s2){ if(s1.power == s2.power) return s1.order > s2.order;// 顺序 靠前的 优先 else return s1.power < s2.power; // 病情严重的 优先}int main(){ priority_queue<node> q; // 创建一个新的优先队列 里面存储 的是 结构体 node temp; temp.power = 1; temp.order = 2; q.push(temp); // 优先队列 里 插入 元素 cout<<q.top().order<<endl; // q.top() 是 调用 优先队列里面的优先值 最大的元素 // q.empty() 是用来判断 队列 是否 为空 ,若为空 返回 1, 若不为空 返回0 return 0;}
阅读全文
1 0
- 栈和 队列 和 优先队列的 简单操作(初学者)
- 栈、队列和优先队列
- 队列和优先队列
- 线性表、栈、队列和优先队列
- STL中栈、队列和优先队列的使用
- STL优先队列的简单操作
- FIFO队列和优先队列
- 丑数 简单的优先队列和set
- 优先队列的操作
- 栈和队列的操作
- 栈和队列的操作
- 栈和队列的操作(c)
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 1821: [JSOI2010]Group 部落划分 Group
- 洛谷 P3797 妖梦斩木棒
- 1093: [ZJOI2007]最大半连通子图
- QueryDSL的DEMO示例
- 1266: [AHOI2006]上学路线route
- 栈和 队列 和 优先队列的 简单操作(初学者)
- [USACO09DEC]牛收费路径Cow Toll Paths
- HTTP请求行、请求头、请求体详解
- 洛谷 P1262 间谍网络
- 实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
- [USACO08OCT]牧场散步Pasture Walking
- P1457 城堡 The Castle
- 洛谷 P1213 时钟 &&IOI 1994 The Clocks
- 洛谷 P1074 靶形数独