深度优先搜索和广度优先搜索反映在数据结构上的差别是什么?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 11:30:55
xSNQ}8}"&MCҷ&~@2XɀI ^LA
4T3'~g0#v^{Z8%kE*MAq0b
oaA9<=лIzr
P~a"zOYuKOA$O/+7q7y3ՔI$,TXTKݑEƽ%+3.nIpeLAO7H>Ai4CBg^G:UJ]tH sox]=jYGƣ(-Zj`-)ƣA [!x}!cˎzL&9='L;
/>0?,5nd
ZmʞmڽkP*pRE.d#̇q,8ѽaMUP'gL'Yec+S%qZ#%10Nl3Ȣ$zY@=6
ִE6=D;Pڱ1lnNLYİYi`ixw:ۚI<
?ҘvVZ,K!d3To_ִԅ~W<ʶ?4'ֱ*U^
a'o%um-ea}|s)$y.{<
深度优先搜索和广度优先搜索反映在数据结构上的差别是什么?
深度优先搜索和广度优先搜索反映在数据结构上的差别是什么?
深度优先搜索和广度优先搜索反映在数据结构上的差别是什么?
深优
算法框架(递归基本算法)
Procedure DFS(dep);
begin
For i:=1 to max_i do {共有max_i种可能情况}
If 某种可能符合条件 then begin
采用这种可能情况;
if 达到目标 then 输出
else dfs(dep+1);
把这种情况取消;
end;
end;
广优
一.算法框架
Program BFS;
初始化,存储初始状态(记录初始结点);
设队列首指针closed=0;队列尾指针open:=1;
repeat
首指针closed后移一格,取其所指向的结点;
for r:=1 to max_r do
begin
if子结点符合条件 且 子结点没有重复扩展 then
begin
尾指针open加1;把新结点存入队列尾;
记录相关信息;
if 达到目标 then 输出且结束;
end;
until closed>=open(队列空)
加分啊!