本文是《Redis内部数据结构详解》系列的第四篇。在本文中,我们首先介绍一个新的Redis内部数据结构——ziplist,然后在文章后半部分我们会讨论一下在robj, dict和ziplist的基础上,Redis对外暴露的hash结构是怎样构建起来的。 我们在讨论中还会涉及到两个Redis配置(在r ...
分类:
其他好文 时间:
2020-02-27 13:30:27
阅读次数:
57
题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树:?[3,9,20,null,null,15,7], 返回: 提示: 节点总数 levelOrder(TreeNode root) { vector res; if (root) { queue que; ...
分类:
其他好文 时间:
2020-02-26 22:31:09
阅读次数:
83
数据结构实验之栈与队列八:栈的基本操作 Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input 首先输入整数t(1 <= t <= 10),代表测试的 ...
分类:
其他好文 时间:
2020-02-26 21:04:52
阅读次数:
74
arr.from() 从类数组对象或者可迭代对象中创建一个新的数组实例 arr.isArray() 判断是否是一个数组对象 arr.of() 根据一组数组来创建新的数组实例,支持任意的参数数量和类型。 arr.fill() 将数组中指定区间的所有元素的值,都替换成某个固定的值 arr.pop() 删 ...
分类:
编程语言 时间:
2020-02-26 18:48:38
阅读次数:
66
最近学习了X86汇编,其实无论是古老的8086还是现在i3/5/7/9,Xeon3/5,在最基本原理上,都是相通的,只是CPU位数,寻址空间,寄存器个数,指令集的扩充等方面有所不同,对于学习,8086永不过时。
分类:
其他好文 时间:
2020-02-26 09:14:58
阅读次数:
104
1. arr.push() 从后面添加元素,添加一个或多个,返回值为添加完后的数组长度 1 let arr = [1,2,3,4,5] 2 console.log(arr.push(6,7)) // 7 3 console.log(arr) // [1,2,3,4,5,6,7] 2. arr.pop ...
分类:
编程语言 时间:
2020-02-25 12:29:49
阅读次数:
268
图的存储 邻接表 无结构体 结构体 邻接矩阵 图的遍历 DFS 邻接表 ...
分类:
其他好文 时间:
2020-02-25 00:25:05
阅读次数:
67
面向协议编程(Protocol Oriented Programming,简称POP),是Swift的一种编程范式,Apple于2015年WWDC提出的,如果大家看Swift的标准库,就会看到大量POP的影子。 同时Swift也是一门面向对象的编程语言(Object Oriented Program ...
分类:
编程语言 时间:
2020-02-24 23:53:17
阅读次数:
164
前两天给 Ice 加了 call/cc, 为此还重构了一波, 实现 call/cc 还是因为看了轮子哥的大专系列( 里边说提供 continuation 语言实现 Coroutine 起来很轻松, 后来又查了一些资料, 都说 continuation 表达能力很强, 就实现了一手, 调用方式完全等同 ...
分类:
其他好文 时间:
2020-02-24 19:03:27
阅读次数:
74
题目:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。 ...
分类:
其他好文 时间:
2020-02-24 18:44:52
阅读次数:
67