PASCAL宽搜~~

来源:百度知道 编辑:UC知道 时间:2024/06/11 02:53:25
我学PASCAL
可是宽搜不会
哪位大牛能具体跟我讲讲宽搜常用到的方法,或是一些程序(具有代表意义的)感激不尽~~~~宽搜我不会编~~~~怎么编都是深搜

比如宽搜一棵二杈树
先建立一个队列
把树根入队
然后从队头开始
遍历队头的每一个孩子
分别将每一个孩子入队
以上反复执行
直到队为空

const maxn=10000;
type atype=array[1..10] of boolean;
var q:array[1..maxn,1..2] of longint;
i,j,k,r,d,s,m,n,target:longint;
door,light:array[1..10,1..10] of boolean;
b:array[1..2000000] of boolean;
procedure decode(p:longint;var lig:atype;var now:longint);
var iii:longint;
begin
now:=p div 100000;
p:=p mod 100000;
for iii:=r downto 1 do
begin
if p mod 2=0 then lig[iii]:=false
else lig[iii]:=true;
p:=p div 2;
end;
end;
function code(lig:atype;now:longint):longint;
var iii:longint;
begin
code:=0;
for iii:=1 to r do
if lig[iii] then code:=code*2+1
else code:=code*2;
code:=code+now*100000;
end;
procedure print(step:longint);
begin
writeln('Mr