常见的8中数据结构 (2)

前缀树(Prefix Trees 或者 Trie)与树类似,用于处理字符串相关的问题时非常高效。它可以实现快速检索,常用于字典中的单词查询,搜索引擎的自动补全甚至 IP 路由。

下图展示了“top”, “thus”和“their”三个单词在前缀树中如何存储的:

常见的8中数据结构

单词是按照字母从上往下存储,“p”, “s”和“r”节点分别表示“top”, “thus”和“their”的单词结尾。

常见的树代码面试题

统计前缀树表示的单词个数

使用前缀树为字符串数组排序

8. 哈希表

哈希(Hash)将某个对象变换为唯一标识符,该标识符通常用一个短的随机字母和数字组成的字符串来代表。哈希可以用来实现各种数据结构,其中最常用的就是哈希表(hash table)。

哈希表通常由数组实现。

哈希表的性能取决于 3 个指标:

哈希函数

哈希表的大小

哈希冲突处理方式

下图展示了有数组实现的哈希表,数组的下标即为哈希值,由哈希函数计算,作为哈希表的键(key),而数组中保存的数据即为值(value):

常见的8中数据结构

常见的哈希表代码面试题

查找数组中对称的组合

确认某个数组的元素是否为另一个数组元素的子集

确认给定的数组是否互斥

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxwgd.html