紧急求助!要求用delhpi实现,

解决方案 »

  1.   

    procedure DFS(G);
       begin
    1    for 每个顶点u∈V[G] do
           begin
    2        color[u]←White;
    3        π[u]←NIL;
           end;
    4    time←0;
    5    for 每个顶点u∈V[G] do
    6      if color[u]=White
    7          then DFS_Visit(G,u);
    end; procedure DFS_Visit(G,u);
      begin
    1   color[u]←Gray;              Δ白色结点u已被发现
    2   d[u]←time←time+1;
    3   for 每个顶点v∈Adj[u] do     Δ探寻边(u,v)
    4      if color[v]=White 
              then begin
    5                π[v]←u;
    6                DFS_Visit(G,v);
                   end;
    7   color[u]←Black;             Δ完成后置u为黑色
    8   f[u]←time←time+1;
    end;
     procedure BFS(G,S);
       begin
    1.   for 每个节点u∈V[G]-{s} do
            begin
    2.        color[u]←White;
    3.        d[u]←∞;
    4.        π[u]←NIL;
            end;
    5.   color[s]←Gray;
    6.   d[s]←0;
    7.   π[s]←NIL;
    8.   Q←{s}
    9.   while Q≠φ do
           begin
    10.      u←head[Q];
    11.      for 每个节点v∈Adj[u] do
    12.        if color[v]=White then
                  begin
    13.             color[v]←Gray;        
    14.             d[v]←d[v]+1;
    15.             π[v]←u;
    16.             Enqueue(Q,v);
                  end;   
    17.      Dequeue(Q);
    18.      color[u]←Black;
           end;
       end;