⒈数据库:数组g构成队,存放棋子的状态;数组p作为指针指向其父结点位置;t与s分别表示队头与队尾指针。
⒉结点的产生:与位置间距-3到3的棋子可移入空位,生成新结点状态。 ⒊搜索策略:广度优先搜索。
源程序如下:
program ex143-1; {广度优先搜索} uses time; type
status=string[7]; const
start: status ='0---+++'; obj: status ='+++---0'; var
a,b,c: timetype;
g: array [1..200] of status; p: array [1..200] of integer; i,j,k: integer; t,s: integer;
procedure draw(f: integer);{输出} var
m: array [1..10] of integer; i,j: integer; begin j:=0;
while f<>1 do begin inc(j); m[j]:=f; f:=p[f]; end; writeln;
writeln('Start: ',start); for i:=j downto 1 do
writeln('Step No.',j+1-i,': ',g[m[i]]); writeln('End'); gettimenow(b); howlong(a,b,c);
printtime('Time Take: ',c); halt; end;
function exampass(w: integer): boolean;{判断结点有否重复} var
i: integer; begin
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科广度优先搜索(16)全文阅读和word下载服务。
相关推荐: