在試圖執行DFS時,保存所有已訪問節點列表的最佳數據結構是什麼?如果每個節點都有一個唯一的ID,則一種方法是維護這些唯一ID的散列。如果他們沒有唯一的ID,哈希節點是否可行?在C++中散列指針值
0
A
回答
1
而不是把你訪問過的所有節點放到一個散列表中,把它們放在一個堆棧中。如果將訪問過的節點放入堆棧中,則可以更容易地返回並跟蹤搜索的其他分支。
0
讓我們考慮的原因地址不會是唯一的標識符...
假如你被複制的節點,那麼他們將獲得一個新的地址。
如果您釋放節點並分配新節點,那麼新分配的節點可以重新使用一些先前的地址。
如果你能夠令人滿意地說上述不適用(我猜他們不會),那麼肯定吧,馬上開始吧。
相關問題
- 1. 指針值的散列值
- 2. C中指針的散列表?
- 3. 從指針添加值到散列圖
- 4. 用指針作爲值的散列圖
- 5. GLib散列表 - 指針
- 6. 指針值C空指針
- 7. C中的指針(指針的值)?
- 8. C指針隊列中的指針
- 9. 在C++中爲指針指定指針
- 10. 在C + +指針陣列
- 11. c指針陣列
- 12. 指針在C指針
- 13. C指針列表(雙指針)
- 14. 散列表副本導致空指針
- 15. 將值指針傳遞給c函數中的指針值
- 16. 如何在C#中做「指針指針」?
- 17. 在C++ /鏈接列表中的指針
- 18. 在C++中使用指針陣列
- 19. C++將函數指針轉換爲唯一的「散列」鍵
- 20. C:散列表上不兼容的指針類型
- 21. 創建散列表用於存儲某些指針的值
- 22. 指針指針(C++)
- 23. 在C和C++中,const指針指針指的是什麼?
- 24. 指向C中的指針的指針
- 25. 引用在指針的值,以陣列(c)中
- 26. C++中指針
- 27. 指針在C#
- 28. 指針 - 在C++
- 29. 指針在C
- 30. 指針在C
爲什麼你不能把指針指向'size_t'? – ildjarn 2011-04-25 15:27:20
指針不是唯一的ID本身(當序列化存儲數據和它的原始地址時)。因此,在反序列化時,您只需將指針映射到新的內存位置即可。 – 2011-04-25 15:36:19