我有兴趣直接学习图形数据结构,但没有数据可以放入数据库。任何人都可以为初学者推荐一个查找图形数据的来源吗?(最好是与 Facebook 无关的来源。)
我在哪里可以找到数据来开始练习图形数据结构?
当我和你处于同一位置时,我很高兴找到 Knuth 的Stanford Graphbase (SGB)。他不仅提供了一个用于处理图形的库,还提供了一些可供使用的数据集。我最喜欢的是5 个字母的英文单词数据集。您可以使用您选择的编程语言来生成一个无向图,其中两个单词是邻居当且仅当它们相差一个字母。因此,例如,“bread”和“broad”是邻居,但不是“bread”和“bleak”。
按照书中/文档中的建议(您可以在亚马逊上购买印刷版,这很有趣),然后您可以玩“Word Ladders”之类的游戏,玩家可以在其中尝试找到单词之间的最短路径。实现这些游戏将为您提供尝试最短路径算法、广度优先搜索等的借口。Knuth 实际上ladders.w
在 SGB tarball 的文件中提供了这种游戏的实现(使用他的库)。
SGB 网页上提供了另一个数据集:美国与哥伦比亚特区之间的邻接关系图。我不能包含超链接,因为我是这个网站的新手。
注意:该库是使用 CWEB 编写的,这是一种用于文学编程的工具(同样,不能包含链接,所以谷歌它)。如果要实际使用 SGB 库,则需要安装 CWEB;如果你想要文档,你需要 CWEB 和 TeX。
试试boost graph library,它有大量文档,它被CGAL使用,它是一个计算几何库,允许图形可视化(例如2D Segment Delaunay graph或2D Apollonius Graphs 可视化)。如果你想可视化你的图表,CGAL 可能是一个很好的尝试。它适用于 OFF 文件格式,但您可以使用meshconv将其转换为 STL 或其他格式。
Sedgewick 和 Wayne 的算法数据可在http://introcs.cs.princeton.edu/java/data/获得。