【问题标题】:How do I implement this graph/tree data structure in C#/SQL?如何在 C#/SQL 中实现这个图形/树数据结构?
【发布时间】:2010-10-10 23:21:33
【问题描述】:

我需要在 C#/SQL Server 中实现一个数据结构,它是一点点树和一点点图。我可以想到如何暴力破解这一点,但性能非常重要。这就是我需要帮助的地方。

以下是要求:

1) 有n个根节点。

2) 每个节点可以有 n 个子节点。

3) 每个节点都是一个列表。

4) 每个节点都可以与另一个节点或节点列表中的项目相关。

5) 关系(边?)有一个类型。具体来说,节点可以有松散的关系(图书馆中所有具有相同主题的书籍)、代际关系(对食谱的调整)、变体关系(一本书的翻译)。

6) 每个节点都可以有一个权重。

我不太精通标准词典中没有的数据结构(列表、树、哈希表、字典等)。所以可能有一些我不知道的东西。当我用谷歌搜索“graph sql server”时,我得到了很多关于报告的漂亮图表控件的链接。性能至关重要,可能需要将数百万个节点放入内存。我什至会用一个精心设计的查询来进行 LMGTFY,因为我似乎无法表达我想要的东西。任何起点都会有所帮助。

【问题讨论】:

  • 让你希望你可以使用Neo4j,不是吗? :-)
  • 节点的权重对访问节点所需的相对性能有影响吗?

标签: c# sql-server-2008 data-structures


【解决方案1】:

看看下面的 CodeProject 项目怎么样: http://www.codeproject.com/KB/recipes/DotNet2Datastructures.aspx

它有一个很好的Graph<T> 实现(等等)。未更改的代码对您指定的关系没有帮助,但如果您自己添加它们,这可能是一个很好的起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    相关资源
    最近更新 更多