线性结构的两种常见应用之二: 队列 定义: 一种可以实现“先进先出”的存储结构,即“一端入,一端出”, 队首(front)出队,队尾(rear)入队(注:若front指向队首,则rear指向队尾最后一个有效元素的下一个元素;若rear指向队尾,则front指向队首第一个有效元素的下一个元素) 分类: ...
分类:
编程语言 时间:
2019-08-14 15:03:13
阅读次数:
81
题目 解题思路 暴力bfs,用字符串来模拟这三种操作 优点:代码易想,简单易懂,降低思考复杂度,删除/插入操作直接截取字符串再相加就完事了(.substr函数) 缺点:相对直接用数字操作更慢(可能只有我的慢) 每次记录答案时需要先将字符串转换为数字 (方法与快读的一样) 注意:x.substr(l, ...
分类:
其他好文 时间:
2019-08-11 01:03:55
阅读次数:
95
题目: 使用栈实现队列的下列操作: push(x) 将一个元素放入队列的尾部。 pop() 从队列首部移除元素。 peek() 返回队列首部的元素。 empty() 返回队列是否为空。 Implement the following operations of a queue using stack ...
分类:
其他好文 时间:
2019-08-10 12:24:46
阅读次数:
110
是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。 消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接 ...
分类:
其他好文 时间:
2019-08-10 12:22:08
阅读次数:
102
Leetcode 200 岛屿的数量: DFS利用函数调用栈保证了检索顺序, BFS则需要自己建立队列,把待检索对象按规则入队。 cpp class Solution { // DFS解法,8ms/10.7MB,99.7% / 92% public: / row,col: 坐标,以0开始. 用row ...
分类:
其他好文 时间:
2019-08-09 13:38:17
阅读次数:
74
第23课 - 队列的优化实现 1. 顺序队列的瓶颈 顺序队列 线性表的第一个元素作为队头。 线性表的最后一个元素作为队尾。 入队的新元素是线性表的最后,时间复杂度为O(1)。 出队列时需要将后续的所有元素向前移动,时间复杂度是O(n)。 2. 顺序队列的优化方案 (1)定义front使其始终代表队头 ...
分类:
其他好文 时间:
2019-08-08 18:47:00
阅读次数:
72
优先级队列和普通队列并没有特大的不同之处,不一样的地方是,优先级队列的元素具有优先级之分。优先级高的元素在入队的时候应该放在队列前面。我下面实现的优先级队列元素的优先级由其数值大小决定。数值越小,优先级越高。ps:这和按一定规则排序好队列没啥区别啊。 实现如下 结果如下 ...
分类:
其他好文 时间:
2019-08-05 20:42:35
阅读次数:
108
数据去重 生成指纹:利用hashlib的sha1,对request的请求体、请求url、请求方法进行加密,返回一个40位长度的16进制的字符串,称为指纹 进队: 如果请求需要过滤,并且当前请求的指纹已经在指纹集合中存在了,就不能进入队列了 如果请求需要过滤,并且请求的指纹是一个新的指纹,进入队列 如 ...
分类:
其他好文 时间:
2019-08-03 21:11:24
阅读次数:
75
介绍完栈之后,接下来要介绍的是另一种跟栈很相似的数据结构 —— 队列,和栈一样,队列也是一中特殊的线性表结构,只不过队列是在一端插入,另一端删除,就跟我们平常排队一样的道理,从队尾入队,在队头出去,所以队列的特性是先入先出(FIFO),允许插入的一端叫队尾,允许删除的一端叫队头。一张图可以形象的体现 ...
分类:
其他好文 时间:
2019-08-03 12:31:19
阅读次数:
58