我需要在C#/ SQL Server中实现一个有点树和一点点图形的数据结构。我可以想到如何蛮力,但性能非常重要。这就是我需要帮助的地方。
以下是要求:
1)有n个根节点。
2)每个节点可以有n个孩子。
3)每个节点都是一个列表。
4)每个节点可以与另一个节点或节点列表中的项目相关。
5)关系(边?)有一个类型。具体而言,节点可以具有松散的关系(图书馆中具有相同主题的所有书籍),世代关系(对食谱的调整),变体关系(书籍的翻译)。
6)每个节点都有一个权重。
我不太精通不在标准词典中的数据结构(列表,树,哈希表,字典等)。所以可能有一些我不知道的东西。当我谷歌“图形sql服务器”时,我得到很多关于报告的漂亮图形控件的链接。性能至关重要,可能需要将数百万个节点带入内存。我甚至会使用精心设计的查询来获取LMGTFY,因为我似乎无法表达我想要的内容。任何起点都会有所帮助。
答案 0 :(得分:1)
如何查看以下CodeProject项目: http://www.codeproject.com/KB/recipes/DotNet2Datastructures.aspx
它有一个很好的Graph<T>
实现(以及其他)。未经修改的代码对您指定的关系没有帮助,但如果您自己添加它们可能是一个很好的起点。