数据结构:类似维基百科的树

时间:2012-06-07 15:43:26

标签: performance data-structures tree hierarchy wikipedia

我目前正在开发一个本体,一个所有类别的Web层次结构(想想人物,地点,事物)。成品应该是允许我从Technology-> Computers-> Laptops-> USB Ports,还可以从Movies-> Minority Report-> Computers->等导航的东西。 我需要一个有效的数据结构来分组这些。我需要一个类似树的图,但是一个允许子节点拥有多个父节点的特殊树。 在思考这个问题时,我意识到维基百科是一个不完美的模型。事实上,他们的层次结构从here开始,这正是我所需要的。我看到他们使用有向图,但我想知道这个有向图,有向无环图和多树之间的区别/缺点是什么。我试过研究它,但我不太明白这些差异。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

我认为维基百科上的文章给出了很好的概述:

  • directed graph是由边连接的一组节点,这些节点具有与之关联的方向。
  • directed acyclic graph(DAG)是一个没有directed cycles的有向图。
  • polytree(也称为有向树)是一个有向图,在任意两个顶点之间只有一条无向路径。换句话说,polytree是一个有向图,其基础无向图是一个tree,或者等效地,是一个connected有向无环图,也没有无向周期。

所以我认为你搜索一个连通的有向无环图。尽管维基百科类别系统允许循环,但它们是不需要的。