常见的栈与队列算法题 1.使用队列实现栈 2.使用栈实现队列 3.包含最小值函数的栈 4.合法的出栈序列 5.简单计算器 1.队列实现栈 主要是push函数的编写。x进队后,让之前的元素 一 一 出队再入队。 2.栈实现队列 缺点是,入队所需时间太长,操作步数为2n步。其他为常数。 改进 pop和p ...
分类:
编程语言 时间:
2019-01-15 10:42:01
阅读次数:
232
import time from multiprocessing import Process,Queue #生产者 def producer(q): for i in range(10): time.sleep(0.2) s = '大包子%s号'%i print(s+'新鲜出炉,拿去用') q.p... ...
分类:
编程语言 时间:
2019-01-14 16:34:46
阅读次数:
212
import time from multiprocessing import Process,Queue #生产者 def producer(q): for i in range(10): time.sleep(0.7) s = '大包子%s号'%i print(s+'新鲜出炉,拿去用') q.p... ...
分类:
编程语言 时间:
2019-01-14 16:30:31
阅读次数:
165
一、简介 耦合是软件不能抵御变变化的根本性原因,不仅实体对象与实体对象之间有耦合关系(如创建性设计模式存在的原因),对象和行为之间也存在耦合关系. 二、实战 1、常规开发中,我们经常会在控制器中或者Main方法中调用多个对象,进行批量的操作(完成一次事务性的操作),像下面这样: ok,上面的硬编码可 ...
1. 背景 go代码中要实现异步很简单,go funcName()。 但是进程需要控制协程数量在合理范围内,对应大批量任务可以使用“协程池 + 无锁队列”实现。 2. golang无锁队列实现思路 Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据 ...
分类:
编程语言 时间:
2018-12-31 12:19:27
阅读次数:
383
一、用一行代码实现变量a和b的数值交换: a = 1 b = 2 二、定义一个方法f,使其能接收所有格式的参数 三、is和==的区别 四、Python中哪些类型是可变类型,哪些类型是不可变类型 五、请用一行代码去掉列表[2,12,10,2,33,12,20]中重复的值 六、下面代码会输出什么: de... ...
分类:
其他好文 时间:
2018-12-27 00:27:11
阅读次数:
134
一、简介 Java提供了FIFO先进先出的阻塞队列实现,这其实是一种生产者消费者理念,可以通过阻塞队列将生产者和消费者进行解耦合。 LinkedBlockQueue是一种无界队列,但事实上它只是队列可容纳的最大值很大。通常,我们为了防止特殊情况,都会给队列设置一个边界。 JDK文档:http://t ...
分类:
数据库 时间:
2018-12-23 20:49:35
阅读次数:
333
无锁队列 介绍 在工程上,为了解决两个处理器交互速度不一致的问题,我们使用队列作为缓存,生产者将数据放入队列,消费者从队列中取出数据。这个时候就会出现四种情况,单生产者单消费者,多生产者单消费者,单生成者多消费者,多生产者多消费者。我们知道,多线程往往会带来数据不一致的情况,一般需要靠加锁解决问题。 ...
分类:
其他好文 时间:
2018-12-23 17:53:55
阅读次数:
224
场景 有a、b、c三个异步任务,要求必须先执行a,再执行b,最后执行c 且下一次任务必须要拿到上一次任务执行的结果,才能做操作 思路 我们需要实现一个队列,将这些异步函数添加进队列并且管理它们的执行,队列具有First In First Out的特性,也就是先添加进去的会被先执行,接着才会执行下一个 ...
分类:
其他好文 时间:
2018-12-23 15:23:04
阅读次数:
168
package com.lt.datastructure.MaxHeap; import java.util.LinkedList; import java.util.List; import java.util.TreeMap; import com.lt.datastructure.Queue.... ...
分类:
其他好文 时间:
2018-12-05 02:08:50
阅读次数:
179