A有一组对象。每个对象都包含与其连接的其他对象的列表,但并非所有对象都连接到每个其他对象。我正在尝试访问连接到特定起始对象的每个对象。最明显的方法是:
是否有更好的方法不涉及存储每个访问对象的列表?
答案 0 :(得分:2)
鉴于您描述的数据结构(任何对象可以连接到任何其他对象),我认为您不能选择保留已访问过的列表。如果您的对象处于分层树结构中,则可以实现递归树步行算法来执行您想要的操作。
在对等连接对象的结构中,任何试图取消已访问列表的算法都会冒着进入循环引用的无限循环的风险。我想你可以在对象本身中创建一个'visited'标志,在一些算法运行之前清除所有这些标志,但这看起来比list方法更笨重(并且本身就更不易于线程化)。