作为程序猿(媛),你必须熟知一些常见的数据结构,比如栈、队列、字符串、链表、二叉树、哈希,但是除了这些常见的数据结构以外,还有没有其他不是很有名,但却非常实用的数据结构呢,有人在 stackoverflow 上问了这样一个问题,得到了很多热心观众的回答,我们今天就来看看那些鲜为人知却非常实用的数据结构吧。
首先,维基百科上的一个页面列举了常见的数据结构,你可以先去那个页面看看。下面我们就来看看一些不是很常见的数据结构吧:
- Tries(前缀树)
- Bloom filter(布隆过滤器)
- Rope: 主要用于某些文本编辑器中,可用于字符串高效地插入、删除、追加等操作。SGI 的 STL 中实现了 Rope(http://www.sgi.com/tech/stl/Rope.html)
- Skiplist(跳表)
- Spatial Indices(空间索引),如R-trees 和 KD-trees
- Splay trees(伸展树)
- Disjoint Set(并查集)
- Fibonacci heaps(斐波那切堆)
- Huffman trees(哈夫曼树)
- ring buffer(又名circular buffer)
- Merkle trees(哈希树)
- min-max heap
- bitset(又称bit array, 位数组)
- Xor linked list
- AA tree
- Log-structured merge-tree
- Radix tree
- Judy array
相关推荐
这对于实现某些排序算法或简单的数据结构调整非常有用。 ```java public void testSwap() { List<String> l = new ArrayList(); l.add("t"); l.add("a"); l.add("n"); l.add("k"); l.add("s"); System.out....
在Excel中,有一些鲜为人知但非常实用的技巧,这些技巧能够显著提高工作效率,尤其是对于处理大量数据的用户。以下是一些具体的技能介绍: 1. **Excel工作表大纲的建立**: 当你需要管理一个包含众多条目的大型...
该项目是鲜为人知的数据结构的集合。重点是在性能与简单性和易于理解之间取得平衡。我试图记录实施中的所有主要部分。 目前有: 跳过清单 可变的B树 不变的持久性向量 跳过清单 性能上的跳过列表很像二叉树,但是...
在Excel中,掌握一些鲜为人知的技巧可以显著提高工作效率...这些技巧对于Excel用户来说非常实用,不仅可以提高数据处理的效率,还能让工作表更加整洁、易读。熟练掌握这些技能,将使你在数据分析和报告制作中游刃有余。
以下是一些MySQL中的鲜为人知的技巧: 1. **以XML格式查看查询结果**: 通过在命令行中使用`--xml`选项,可以将查询结果以XML格式输出,这对于需要与其他程序集成的数据交换非常有帮助。例如,`mysql --xml`后执行...
在本文中,我们将探讨几个鲜为人知的MySQL特殊技巧,这些技巧可以帮助数据库管理员和开发人员更高效地管理和操作数据库。 首先,MySQL允许用户以XML格式查看查询结果。这对于需要将查询结果与其他应用程序集成的...
这是SSMS中另一个非常实用的隐藏功能,有助于数据库结构的快速恢复和管理。 ### 高效查询执行 SSMS不仅支持在完整窗口中打开查询结果,还允许用户在网格模式下查看查询结果,并在将数据复制到Excel或其他应用程序时...
### 鲜为人知的U盘常识 #### U盘概述 - **定义**: U盘,又称USB闪存盘,是一种采用USB接口的微型高容量移动存储设备,无需物理驱动器即可与电脑连接实现即插即用。 - **起源**: “U盘”一词源于朗科公司生产的...
在电子政务的庞大体系中,包括了众多的关键技术与设备,其中,“带皮带槽的新型飞轮发电机转子”或许是一个鲜为人知却至关重要的组成部分。 飞轮发电机作为电力供应和能源存储的设备,其核心在于储存和转化能量。...
接下来,`SystemInformation`参数是一个指针,用于接收返回的数据,而`SystemInformationLength`指定缓冲区的大小。`ReturnLength`则用于返回实际使用的字节数。 编写一个简单的C++程序来调用`...
随着全球环境问题的日益严峻,各国政府纷纷出台了鼓励使用新能源汽车的政策,推动了电动汽车产业的迅猛...只有这样,电动汽车才能真正成为推动绿色出行的中坚力量,为全球能源结构的转型和环境的改善做出更大的贡献。
这份“java教材”旨在揭示那些在Java学习过程中可能被忽视或鲜为人知的知识点,帮助开发者深入理解这门语言,从而提升编程技能。 一、面向对象编程基础 Java的核心特性之一就是面向对象编程(OOP)。OOP通过类和...
抽象数据结构(Abstract Data Type,ADT)是C++中的一个重要概念,它可以帮助开发者更好地设计和实现数据结构。了解抽象数据结构可以帮助开发者更好地理解C++的语法和语义。 ### 62.1 普通类的内存布局(非继承) ...
在Python中,字典(dict)是一种内置的数据结构,用于以键-值对的形式存储数据集合。你可能听过Python字典的其他名称,如查找表、映射、哈希映射或关联数组。 Python字典的一个最全面的例子就是电话簿。可以使用...
各种数据结构、算法及实用的C#源代码 C#,欧拉常数(Euler Constant)的算法与源代码 欧拉常数最先由瑞士数学家莱昂哈德· 欧拉 (Leonhard Euler) 在1735年发表的文章《De Progressionibus harmonicus observationes...
这些类型非常适合存储货币值等需要高精度的数据。 #### 货币数据类型 1. **money** 和 **smallmoney**:用于存储货币值,其中money可以存储范围从-2^63 (-922,337,203,685,477.5808) 到 2^63-1 (+922,337,203,685,...
3. **数据结构与算法**:源码中可能会用到各种高效的数据结构(如链表、树、哈希表)和算法(如搜索、排序)。通过研究这些实现,我们可以提升对数据结构和算法的理解,提高解决问题的能力。 4. **错误处理与日志...