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