FP and OOP

FP 和 OOP 是目前主流的编程范式.我们不谈论这两种编程范式的优劣, 仅仅讨论一下 FP 和OOP 两者的差别. Decomposition 如何将一个任务分解, 这是任何一位Programmer都需要考虑的事情, 而FP和OOP对于如何将一个大型程序或者任务分解有着完全不同 »

二叉搜索树

二叉搜索树是以一棵二叉树来组织的, 其中每一个结点都是一个对象, 每个结点都包含属性 left right 和 p, 它们分别指向结点的 left child, right child 和 parent. 如果某个 child 结点不存在, 那么相应的属性就为 nil. 二叉搜索 »

散列表

散列表(hash table)是实现字典操作的一种有效的数据结构. 尽管在最坏情况下, 散列表中查找一个元素的时间与链表中查找的时间相同, 达到了 $\Theta(n)$. 然而在实际的应用中, 散列表的性能是极好的, 查找元素的平均时间是 $O(1)$. 直接寻址表 当关键字的 »

基本数据结构

在这一次的 post 中, 我们将要介绍一些简单的数据结构: 栈, 队列, 链表和树. 栈和队列 栈和队列都是动态集合, 在这两种数据结构上进行 DELETE 操作所移除的元素都是预先设定的. 它们是两种最常用的数据结构. 栈 在栈中, 被删除的元素是最近插入的元素. 它实现的是 »