在C ++中散列指针值

时间:2011-04-25 15:11:43

标签: c++ data-structures graph

在尝试进行DFS时,保存所有已访问节点列表的最佳数据结构是什么?如果每个节点都有唯一的id,则一种方法是维护这些唯一ID的散列。如果它们没有唯一的id,那么散列节点是否可行?

2 个答案:

答案 0 :(得分:1)

不要将您访问过的所有节点都放在哈希表中,而是将它们放在堆栈中。如果将访问过的节点放在堆栈中,则可以更容易地回溯并跟踪搜索的其他分支。

答案 1 :(得分:0)

让我们想一想地址不是唯一标识符的原因......

  1. 如果您要复制节点,那么他们将获得一个新地址。

  2. 如果您释放节点并分配新节点,则新分配的节点可以重复使用以前的某些地址。

  3. 如果您能够满意地说上述内容不适用(我的猜测是不会),那么请确保前进。