B Tree

这篇文章以数据库存储的数据结构来引出本文的重点B树,以及后面还有另一种数据结构B+树. 试想, 如果你想持久化大量的数据在硬盘上, 同时还希望能高效的查询和修改他们, 你会怎么做, 使用哪种数据结构. 数组和链表, 他们的缺点很明显, 我们寻找数据需要遍历整个数据结构, 试想一下你的数据库中有50PB的数据, 这个开销是我们无法接受的. ...

2020年08月30日 · 999 字 · sdttttt

Red Black Tree

半年前在研究HashMap的时候已经学习过红黑树的规则原理了. 不过现在又遇到就忘记是怎么实现的了.(只知道这玩意是用来平衡树的) 这次就把这个数据结构做一个了断. 性质 性质1:每个节点要么是黑色,要么是红色。 性质2:根节点是黑色。 性质3:每个叶子节点(NIL)是黑色。 性质4:每个红色结点的两个子结点一定都是黑色。 性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。 满足这5个性质就能保证红黑树是平衡的. ...

2020年05月25日 · 924 字

Stack by Rust implement

2020年05月20日 · 0 字

Tree by Rust implement

2020年05月20日 · 0 字

CSIP鸡你太美存器

之前刚学的时候对这个玩意音响没那么深刻,现在再学,感觉很不一样了。 CS为代码段寄存器,IP为指令指针寄存器。 设CS = M, IP = N, 8086CPU将从 M × 16 + N 处读取指令并进行。 也可以这样表述: 8086CPU中,任意时刻,CPU都会将CS:IP指向的内容做为执行指令. ...

2020年04月06日 · 585 字

MultiplexingIO

其实“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因。所谓的I/O多路 复用在英文中其实叫 I/O multiplexing. 如果你搜索multiplexing啥意思,基本上都会出这个图: 于是大部分人都直接联想到"一根网线,多个sock复用" 这个概念,包括上面的几个回答, 其实不 管你用多进程还是I/O多路复用, 网线都只有一根好伐。多个Sock复用一根网线这个功能是在内核 +驱动层实现的. ...

2020年04月06日 · 1441 字

SS:SP鸡你太美存器

如今的CPU都有提供栈机制,8086也不例外。 8086提供的最基本的两个指令就是push and pop. push ax ;将寄存器ax中的数据送入栈顶 pop ax ;将栈顶的数据送入ax 我们知道CS:IP寄存器存放了下一条指令的段地址和偏移地址,那么CPU是如何知道栈顶在哪呐? 显然也有两个寄存器专门存放栈顶的地址,那就是SS:SP寄存器,SS = 段地址, SP = 偏移地址 ...

2020年04月06日 · 578 字

Socks5

SOCKS 是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递,SOCKS 是"SOCKetS"的缩写。 SOCKS5 是 SOCKS4 的升级版,其主要多了鉴定、IPv6、UDP 支持。 SOCKS5 协议可以分为三个部分: ...

1835 字