Chapter 3: 基础数据结构
本章来介绍一些基础的数据结构。 抽象数据类型与数据结构抽象数据类型 (Abstract Data Type, ADT) 与 数据结构 (Data Structure) 本质上是两码事。抽象数据类型的角度较为宏观,例如“存在一个栈,允许我往里压入元素,...
本章来介绍一些基础的数据结构。 抽象数据类型与数据结构抽象数据类型 (Abstract Data Type, ADT) 与 数据结构 (Data Structure) 本质上是两码事。抽象数据类型的角度较为宏观,例如“存在一个栈,允许我往里压入元素,...
增删改我们聊的挺多了,但是查该如何去执行呢? 搜索算法线性搜索 (Linear Search)最简单的查找方式就是线性搜索 (Linear Search) 了。线性搜索的方法非常简单,例如在数组里,我们就从头到尾按照index把整个数组扫一遍。找...
我们已经在第五章介绍了树。这一章我们将目光聚集到二叉搜索树上。 还记得二分搜索的缺点嘛?二分搜索需要在一个排好序的数组上才能使用,而且正如我们之前所说,二分搜索在这种情况下适用于静态数据的搜索,因为一旦我们需要在数组里添加或删除元素,你需要花费$...
还记得如果我们将数据按顺序插入BST会出现什么问题吗?我们的结果会变成一个链表,所有操作退化为 $O(n)$。 本章我们引入平衡树——这些树会在插入或删除过程中自动调整结构,强制保持平衡,从而保证操作复杂度始终是 $O(\log n)$。 AVL ...