0
說我想要一個儘可能快地獲得解決方案的算法,其中包括從樹中的狀態開始,並遍歷樹狀結構中所有可能的狀態,爲什麼有必要首先構建一棵樹,然後遍歷它,而不是構建一棵樹,並且如果在構建解決方案節點期間發現,要停止構建並立即回溯到根,記下該葉的路徑?搜索樹vs構建樹的算法
基本上,有沒有一種BF算法來'生成'一棵樹廣度優先,而不是先創建一棵樹,然後以廣度優先的方式搜索它?
像動畫效果here:
類感謝您閱讀
說我想要一個儘可能快地獲得解決方案的算法,其中包括從樹中的狀態開始,並遍歷樹狀結構中所有可能的狀態,爲什麼有必要首先構建一棵樹,然後遍歷它,而不是構建一棵樹,並且如果在構建解決方案節點期間發現,要停止構建並立即回溯到根,記下該葉的路徑?搜索樹vs構建樹的算法
基本上,有沒有一種BF算法來'生成'一棵樹廣度優先,而不是先創建一棵樹,然後以廣度優先的方式搜索它?
像動畫效果here:
類感謝您閱讀
沒有優勢,在搜索算法建立一個樹,然後搜索它,正是由於你所提到的原因。此外,沒有搜索相關的優勢,通過構建寬度優先或深度優先的樹來獲得。
通常情況下,樹已經存在,我們使用廣度優先方法或深度優先方法遍歷它們。我們選擇這些方法之一的原因是由於搜索元素或樹的屬性。
如果您已經看到過構建一棵樹然後搜索它的情況,那麼這是出於教學目的,您必須編寫一個獨立的程序來構造樹並遍歷它。這與創建數字鏈接列表並執行線性搜索,或構建二叉搜索樹,然後搜索值相似。通常這種方法傾向於教導創建和遍歷打包到一個程序中的數據結構。
我的印象是,最常見的樹搜索方法是在你去時隱式構建樹,而不是構建整棵樹然後搜索它。你有沒有其他的消息來源? – templatetypedef
那麼,我的教授說,爲了搜索一棵樹,你首先需要建立一棵樹。現在我在搜索一棵樹的意思是衝突 – JuroNemo
這聽起來像(1)他們指的是一種不同的問題,(2)他們指的是樹的抽象概念,而不是構建它的代碼,或(3)他們錯了。在這樣的搜索問題中,爲了正確識別原因,事先明確構建樹是不常見的。 – templatetypedef