Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 术语:非树图?_Data Structures_Graph_Terminology - Fatal编程技术网

Data structures 术语:非树图?

Data structures 术语:非树图?,data-structures,graph,terminology,Data Structures,Graph,Terminology,我不熟悉数据结构,对术语有疑问。非树型图有一个术语吗 我意识到双向/无向图本质上是非树型的。这个词合适吗?我这样问是因为树似乎是一个图的公共子类别,所以我认为可能有一个术语表示所有不属于该子类别的图 注:请随意浏览上面的任何方言。希望您能提供有关数据结构的适当术语的提示 我不认为非树图有一个通用术语(也许除了“非树图”本身) 是连接的、非循环的、有向图,具有一些附加规则,例如每个节点(根除外)只有一个父节点。某些类型的树具有其他类型的图中不常见的其他附加规则(例如对节点子节点的顺序有重要意义)。

我不熟悉数据结构,对术语有疑问。非树型图有一个术语吗

我意识到双向/无向图本质上是非树型的。这个词合适吗?我这样问是因为树似乎是一个图的公共子类别,所以我认为可能有一个术语表示所有不属于该子类别的图


注:请随意浏览上面的任何方言。希望您能提供有关数据结构的适当术语的提示

我不认为非树图有一个通用术语(也许除了“非树图”本身)

是连接的、非循环的、有向图,具有一些附加规则,例如每个节点(根除外)只有一个父节点。某些类型的树具有其他类型的图中不常见的其他附加规则(例如对节点子节点的顺序有重要意义)。根据非树图违反的限制,您可以对其进行不同的描述

未完全连接的树状图可以称为“森林”。林有几个根节点,每个根节点锚定一个不相交的子树

如果图形有多个根节点,但它们的子节点重叠(因此给定的子节点可能有多个父节点),则有一个“”。如果表亲或其他亲属之间没有婚姻,人类的家谱可能是多树的

下一个更一般的术语可能是“”或“DAG”。DAG比multitree更通用,因为祖先节点可以通过多条路径连接到后代节点。人类谱系树更适合作为DAG,因为足够远的亲属通常可以结婚生子(但没有人可以成为他们自己的祖先)。有许多算法设计用于DAG,因为禁止循环可以为许多有用的应用程序(如路径查找)提供更好的性能

更一般的还是一个“”或“有向图”,它放松了对循环的限制。常见的有向图数据结构是邻接列表(从一个节点到另一个节点的弧列表)


我认为除了“图形”之外,没有其他更一般的术语了。如果您有一个特定的图形应用程序,可能会有一个专门的术语来描述您将使用的图形类型(可能还有算法,甚至是库代码),但您需要特别询问这一点。

边的方向性与图形是否是树无关。太棒了!这确实有助于澄清问题。谢谢你的帮助!Hi@ ReiasaRuxReX:如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。不完全是这样:树是一个无向图,是连接的和非循环的,参见维基百科。如果要引用有向树(也称为polytree),则不能使用定义,因为“非循环”仅禁止有向循环,而不禁止半循环。所以你应该说“没有圈”或者等价地说“没有无向圈”(=没有定向圈和半圈),而不是“无环”。有关更多详细信息,请参阅。