循环和非循环数据结构

时间:2010-10-20 17:35:45

标签: c++ data-structures cyclic

有什么区别,你能举例说明吗?

2 个答案:

答案 0 :(得分:7)

如果你可以从节点X开始,导航结构而不访问同一节点两次,然后返回X,那么结构是循环的。循环是沿着这样的路径访问的一系列节点。

我们通常在无向结构(两个节点之间的连接没有特定方向)中对大小为2的周期(即,访问邻居并向右后方)进行例外处理。

如果结构不是循环的,则必须是非循环的。

答案 1 :(得分:1)

如果您可以按照圆圈中的指针返回原始对象。

例如:
A-> B-> A是循环
A-> B-> C-> A是循环
A-> B A-> C C-> D B-> D不是循环(它是有向无环图)

这与refcounted smartpointer相关,后者“拥有”他们指向的对象。因为那时他们就变成了Münchhausen并且在记忆中相互拥抱,即使他们无法通过垃圾收集语言中的gc-roots到达。