2010-10-20 272 views

回答

7

如果您可以从节点X开始,在两次访问同一个节点的情况下浏览结构,并返回到X,则结构是循环的。该循环是沿着这样的路径访问的一系列节点。

我们通常会在无向结构(两个节点之间的连接没有特定方向)中对大小为2的循环(即访问邻居并回来)做例外。

如果一个结构不是循环的,它必须是非循环的。

1

如果您可以按循环中的指针返回到原始对象。

例如:
A-> B-> A是周期
A-> B-> C-> A是周期
A-> B A->ÇC-> d B- > D是无周期的(它是一个有向无环图)

这与“指向”自己指向的对象的refcounted智能指针有关。因为这样他们就成为了Münchhausen,并且在记忆中保持着对方的地位,即使他们无法从垃圾收集语言中的GC根源中获得。