1.C标准库的I/O缓冲区 UNIX的传统 是Everything is a file,键盘、显示器、串口、磁盘等设备在/dev 目录下都有一个特殊的设备文件与之对应,这些设备文件也可以像普通文件(保存在磁盘上的文件)一样打开、读、写和关闭,使用的函数接口是相同的。用户程序调用C标准I/O库函数读写 ...
分类:
其他好文 时间:
2018-02-26 15:12:03
阅读次数:
165
队列也是一组元素的集合,也提供两种基本操作:Enqueue(入队)将元素添加到队尾,Dequeue(出队)从队头取出元素并返回。就像排队买票一样,先来先服务,先入队的人也是先出队的,这种方式称为FIFO(First In First Out,先进先出),有时候队列本身也被称为FIFO。 下面我们用队 ...
分类:
其他好文 时间:
2018-02-26 11:12:44
阅读次数:
249
和栈的先进后出不同,队列的形式是先进先出,队列的想法来自于生活中排队的策略, 顾客在付款结账的时候,按照到来的先后顺序排队结账。先来的顾客先结账,后来的顾客后结账。 队列有两种实现形式:1 顺序表实现 2 循环顺序表 首先来看下顺序表的实现,在python中,队列的实现用list来写十分的方便。实现 ...
分类:
其他好文 时间:
2018-02-25 19:25:38
阅读次数:
189
BlockingQueue 一、阻塞队列基本方法介绍 谈到线程池,不得不谈到生产者-消费者模式,谈到生产者-消费者,就不得不谈到对应的数据结构,谈到对应的数据结构不得不言BlockingQueue。 顾名思义,BlockingQueue翻译为阻塞队列。队列无非两种操作:入队和出队。而针对于入队出队的 ...
分类:
其他好文 时间:
2018-02-25 00:06:26
阅读次数:
228
问题 如何支持一个无容量限制的channel 取出元素会阻塞到元素存在并且返回 放入元素永远不会阻塞,都会立即返回 方法一:用两个chan加一个list模拟 在单独的goroutine处理入队和出队,这样不用给list加锁。 完整代码:https://github.com/luweimy/gouti ...
分类:
其他好文 时间:
2018-02-14 18:43:07
阅读次数:
975
priority_queue 优先队列(Priority Queues):顾名思义,一个有着优先级的队列。它是一种ADT,和队列的思想差不多—— 排队,数据结构中的队列是不能插队的,不能颠倒排队的顺序,而在优先队列里,先出队列的元素不是先进队列的元素,而是优先级高的元素,默认的优先级是数字大的数优先 ...
分类:
其他好文 时间:
2018-02-12 15:23:57
阅读次数:
189
何为单调队列? 单调队列是一个队列(废话) 而且必须同时满足下标单调和值单调两个单调特性。 跟优先队列不同,优先队列直接使用堆(heap)来实现,如何删去特定下标元素?不明。 本人喜欢用单调队列存下标,这样比存值不知道高到哪里去了。 新来一个元素,进队。之后特判长度有没有超过。超过则把最前面的元素出 ...
分类:
其他好文 时间:
2018-02-11 21:22:29
阅读次数:
172
生产者与消费者模式 1. 队列 先进先出 2. 栈 先进后出 Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语(可以理解为原子操作,即要么不 ...
分类:
编程语言 时间:
2018-02-05 20:09:39
阅读次数:
166
"洛谷P1091" 题目描述 N位同学站成一排,音乐老师要请其中的(N K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1… TK(1 输入格式: 输入文件chorus. ...
分类:
其他好文 时间:
2018-02-04 11:10:40
阅读次数:
141
重回algo。 广度优先算法(BFS)。这个算法会用到队列的数据结构,简单说就是先进队列的结点最后会先出来,后进的后出。队列里最开始只有初始结点,让结点出队,然后分析每个这个结点能够连到的结点,如果目标结点没有被探索过(这里需要一个标记),标记它为已探索,然后让他入队,之后对每个入队的结点都对相同的 ...
分类:
其他好文 时间:
2018-02-03 12:32:19
阅读次数:
165