設(shè)計說明:1。數(shù)據(jù)結(jié)構(gòu)和表示:程序用1、2、3、4分別表示將右、上、左、下的數(shù)字塊移動到空格之中。采用典型的樹+鏈表結(jié)構(gòu),每種局面產(chǎn)生一個BoardState類。出于避免走法順序列表被過多復(fù)制的考慮,在樹結(jié)構(gòu)中保存局面的繼承關(guān)系。每種新的局面產(chǎn)生后,引用估值函數(shù)產(chǎn)生f的值,再根據(jù)大小將其插入鏈表之中,以便實(shí)現(xiàn)“優(yōu)先展開f值小的節(jié)點(diǎn)”。Solve()函數(shù)在成功解決問題之后保存一個走法序列供輸出并返回零,而失敗則返回失敗處的節(jié)點(diǎn)層數(shù)。(具體的判斷方法見后文)
標(biāo)簽:
數(shù)據(jù)結(jié)構(gòu)
分
典型
數(shù)字
上傳時間:
2015-05-02
上傳用戶:xieguodong1234