2012-04-04 122 views
0

對於動態編程,我存儲樹的一些方法是什麼?在C++中表示一棵樹

我正在完成一項任務,要求我解決迷宮問題,無需左轉彎,右轉彎最小化。我的想法是將所有可能的路徑存儲到樹中,然後遍歷(遍歷)樹尋找最小的右轉。爲了使代碼更高效,隨時隨地的路徑涉及要麼

一)左轉 b)用更右轉比目前最好的已知的解決方案

一個解決方案,我不會把它添加到樹。希望我對我在這裏做的事情有清晰的認識。我真的很欣賞這方面的投入。

我正在查看的樹會包含迷宮中所有可能的方向,並且每個孩子的父母都將成爲之前的位置。我相信有些父母會有兩個以上的孩子。

我想知道什麼是最好的方式來存儲這種樹?

預先感謝您。

+1

你必須保存樹或解決迷宮? – WeaselFox 2012-04-04 08:05:39

+0

哦,是的,我喜歡。我只是想知道什麼是存儲樹的最佳方式。我只是混淆/無知,因爲我只處理了只有2個孩子的樹木。 – michcs 2012-04-04 13:05:38

+0

難道你不能只適應[洪水填充](http://en.wikipedia.org/wiki/Flood_fill)或[BFS](http://en.wikipedia.org/wiki/Breadth-first_search)? – foxx1337 2012-04-04 14:14:00

回答

0

如果問題是要解決迷宮,我建議使用backtracking而不是創建這樣一棵樹。如果您必須創建樹,您可以使用一棵樹,其中您可以右轉的每個交叉點都表示爲一個節點,如果右轉,子節點將成爲下一個節點,如果沒有,則下一個節點。我不確定我是否正確地理解了你,但我希望這給你一些關於如何繼續的指導。