小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

pascal深搜

 楓葉cn 2013-09-07

NecerBac 5級 2010-10-30

深度優(yōu)先搜索我也是深有其感啊,當年也是就結(jié)了很久

 

以下是我的看法和我的框架,你看看能不能幫到你

 

深度優(yōu)先搜索法有兩個顯著特點

(1)對已產(chǎn)生的結(jié)點按深度排序存儲,深度大的先得到擴展,即先產(chǎn)生它的子結(jié)點;

(2)深度大的結(jié)點是后產(chǎn)生的,但先得到擴展,即“后產(chǎn)生先擴展”。因此該算法應該用堆棧作為的主要數(shù)據(jù)結(jié)構(gòu)存儲產(chǎn)生的結(jié)點:先把產(chǎn)生的數(shù)入棧,然后產(chǎn)生棧頂(即深度最大的結(jié)點)的子結(jié)點。子結(jié)點產(chǎn)生完后,出棧(pop)再產(chǎn)生棧頂?shù)淖咏Y(jié)點。

                                     

                              深度優(yōu)先搜索算法描述

  程序?qū)崿F(xiàn)有兩種方式--遞歸與非遞歸。

  遞歸過程為:
  Procedure DFS(step)
   for i:=1 to max do
    begin
  if 子結(jié)點符合條件 then
     begin
    產(chǎn)生新的子結(jié)點入棧;
      if 子結(jié)點是目標結(jié)點 then 輸出
       else DFS(step+1);
      棧頂結(jié)點出棧;
     end;
    end;
  主程序為:
  Program DFS;
   Begin
      初始狀態(tài)入棧;
   DFS(1);
     End.
  
  非遞歸
  Program DEF(step);
   Begin
 depth:=0;
 repeat
  if 當前節(jié)點可以擴展
   then begin
  inc(depth);
  擴展該狀態(tài)的可用一種決策;  //即對拓展節(jié)點進行處理;
  if depth=目標深度 then 輸出結(jié)果;
        end
   else if 該狀態(tài)有其余可用方案
  then 擴展該狀態(tài)的可用一種決策
  else begin
   消除當前深度的嘗試對其他變量的影響;
   dec(depth);
       end;
 until depth=0;
     End.
 
----------------------------------

兩種方式本質(zhì)上是等價,但兩者也時有區(qū)別的。

1.  遞歸方式實現(xiàn)簡單,非遞歸方式較之比較復雜;

2.  遞歸方式需要利用??臻g,如果搜索量過大的話,可能造成棧溢出,所以在??臻g無法滿足的情況下,選用非遞歸實現(xiàn)方式較好。

滿意答案

山水 6級 2010-10-30

一般用遞歸深搜

比如全排列

procedure search(x:longint);

var

 

begin

  if x=n then check(生成后的操作)

  else for i:=1 to n do if f[i] then

     begin

        f[i]:=false;

        c[x]:=i;

        search(x+1);(遞歸搜索下一個值)

        f[i]:=true;

    end;

end;

只是一個過程,深搜用遞歸編比較簡單

追問:

我編的深搜就沒過過,無語了。

回答:
沒事沒事啦,正常的,多打幾次就會了

其他回答(1)

- + 5級 2010-10-30

dfs就是不斷向深層擴展

procedure    dfs(x:longint);

var

    i,j,k,t:longint;

begin

      if x>深度 then

     begin

         輸出結(jié)果;

          exit;

      end

else

     枚舉與x相連的點j;

    if    j   可擴展  then

     begin

       操作 ;

         dfs(j);

       回溯;

     end;

end;

 

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多