cover.png

Summary 前面的数组、链表、栈、队列都是"一条线"——每个元素最多一个前驱、一个后继。但现实世界大量是层次关系:文件系统的目录树、公司的组织架构、HTML 的 DOM、区块链的 Merkle 树。树就是描述这种"一对多"层次关系的结构。更重要的是,树把查找从线性结构的 O(n) 压到了 O(log n)——这是...

cover.png

从 LI.FI 是什么、开发者怎么接入,一路讲到它的内部架构(Diamond 代理、BridgeData/SwapData、寻路在链下执行在链上),再对标 UniswapX;后半篇单独讲 LI.FI Intents & Solver——意图市场怎么运作、Escrow/Compact 两种锁资金方式、四种订单类型与荷兰拍公式,以及集成方和 solver 各自怎么接入。

featured.png

Summary 用一个函数直接"算"出元素在哪,一步到位 O(1)。它的灵魂就一句话:哈希表 = 数组 + 一个把 key 变成下标的哈希函数,用"算地址"代替"找元素"。代价是天下没有免费的午餐:key 无限、桶有限,冲突必然发生,于是又牵出拉链法/开放寻址两套解决方案,以及装载因子 + 扩容 rehash 这套动...

featured.png

Summary 堆栈和队列是一种特殊的线性结构,同时也是一种受限的数据结构,堆栈的处理顺序是“最近发生的,最先处理”,也就是我们常说的先进后出 LIFO(Last In First Out)这种顺序处理通常适合回退、DFS、函数调用栈;队列的处理顺序是“先来的先服务”,也就是先进先出 FIFO(First In...

featured.png

Summary 如果说数组的灵魂是连续存储,那链表的灵魂就是它的反面——用一根"指针"把散落在内存各处的节点串起来。这一个设计上的取舍,换来了数组梦寐以求的能力:在任意位置插入、删除只要改几个指针,O(1) 就能完成,不用像数组那样搬动后面一大片元素。代价也同样直接:失去了 O(1) 随机访问,想找第 i 个节点只能...