主要内容gydF4y2Ba

。gydF4y2Ba

BFSearch.gydF4y2Ba

グラフの幅优先検索gydF4y2Ba

説明gydF4y2Ba

例gydF4y2Ba

vgydF4y2Ba= bfsearch (gydF4y2BaGgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba)gydF4y2Baは,gydF4y2Ba幅优先検索gydF4y2BaをグラフgydF4y2BaGgydF4y2BaにノードgydF4y2Ba年代gydF4y2Ba结果は,検出顺のノードノードなるベクトルです。gydF4y2Ba

例gydF4y2Ba

TgydF4y2Ba= bfsearch (gydF4y2BaGgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba,gydF4y2Ba活动gydF4y2Ba)gydF4y2Baは1つ以上の検索イベントにフラグを設定して,幅優先検索の出力をカスタマイズします。たとえば,gydF4y2Bat = bfsearch(g,s,'andvents')gydF4y2Baはフラグが設定されたすべてのイベントを含むテーブルを返し,gydF4y2BaX = bfsearch (G s edgetonew)gydF4y2Baはエッジの行列细胞配列を返します。gydF4y2Ba

さらに,gydF4y2Ba[gydF4y2BaTgydF4y2Ba,gydF4y2BaEgydF4y2Ba) = bfsearch (gydF4y2BaGgydF4y2Ba,gydF4y2Ba年代gydF4y2Ba,gydF4y2Ba活动gydF4y2Ba)gydF4y2Baは,gydF4y2Ba活动gydF4y2BaがgydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2Ba,またはgydF4y2Ba“edgetofinished”gydF4y2Baに設定されている場合に,エッジインデックスgydF4y2BaEgydF4y2Baエッジベクトルを返し。エッジインデックスは,多重重でエッジをに识别します。gydF4y2Ba

例gydF4y2Ba

[gydF4y2Ba___gydF4y2Ba) = bfsearch (gydF4y2Ba___gydF4y2Ba“重启”,gydF4y2BaTF.gydF4y2Ba)gydF4y2Baで,gydF4y2BaTF.gydF4y2BaがgydF4y2Ba真正的gydF4y2Baのの合,検出したノードから到到な新闻ノードないないにに検索をししますますにある任意のこののまたはまたは出あるののわせわせが使使使このわせわせがが使ますますわせがががますますこのわせがががますますますわせがががますますわせがががますますますわせがががますますがによりがによりますますがによりがががますますますががががますますががによりがががががこのgydF4y2Ba年代gydF4y2Baからは到達できないノードやエッジがある場合でも,幅優先検索でグラフ内のすべてのノードおよびエッジに確実に到達します。gydF4y2Ba

例gydF4y2Ba

すべて折りたたむgydF4y2Ba

グラフを作成してプロットします。gydF4y2Ba

S = [1 1 1 1 2 2 2];T = [3 5 4 2 6 10 7 9 8];图G = (s, t);情节(G)gydF4y2Ba

ノード2からグラフの幅検索検索実行。结果はノードの検出顺序をを示し示します。gydF4y2Ba

v = bfsearch (G, 2)gydF4y2Ba
v =gydF4y2Ba10×1gydF4y2Ba2 1 6 7 8 9 10 3 4 5gydF4y2Ba

有向グラフを作用成しプロットしし。gydF4y2Ba

S = [1 1 1 2 3 3 3 4 6];t = [2 4 5 5 6 7 4 1 4];G =有向图(s, t);情节(G)gydF4y2Ba

ノード1からグラフの幅優先検索を実行します。gydF4y2Ba“allevents”gydF4y2Baを指定して,アルゴリズムのすべてのイベントを含む表を返します。gydF4y2Ba

T = bfsearch (G, 1,gydF4y2Ba“allevents”gydF4y2Ba)gydF4y2Ba
t =gydF4y2Ba14×4表gydF4y2Ba事件节点边EdgeIndex  ________________ ____ __________ _________ startnode南南南discovernode 1南南南edgetonew南1 2 1 discovernode 2南南南edgetonew南1 4 2 discovernode 4南南南edgetonew南1 5 3 discovernode 5南南南finishnode 1南南南edgetodiscovered南2 5 4 finishnode 2南南南edgetofinished NaN 4 1 8 finishnode 4 NaN NaN NaN finishnode 5 NaN NaNgydF4y2Ba

アルゴリズムのステップを追跡するには,テーブル内のイベントを上から下に読み取ります。以下に例を示します。gydF4y2Ba

  1. アルゴリズムがノード1で开启されます。gydF4y2Ba

  2. ノード1とノード2の间のエッジが検出さますますれ。gydF4y2Ba

  3. ノード2が検出されます。gydF4y2Ba

  4. 以下同様です。gydF4y2Ba

複数の要素をもつグラフの幅優先検索を実行し,検索結果に基づいてグラフのノードおよびエッジを強調表示します。gydF4y2Ba

有向グラフ作物成してプロットます。このこのグラフに,弱连结要素が2つあります。gydF4y2Ba

S = [1 1 2 2 3 4 7 8 8 8 8];T = [3 4 7 5 6 2 6 2 9 10 11 12];G =有向图(s, t);p =情节(G,gydF4y2Ba“布局”gydF4y2Ba,gydF4y2Ba“分层”gydF4y2Ba);gydF4y2Ba

c = conncomp (G,gydF4y2Ba'类型'gydF4y2Ba,gydF4y2Ba'虚弱的'gydF4y2Ba)gydF4y2Ba
C =gydF4y2Ba1×12.gydF4y2Ba1 1 1 1 1 1 1 2 2 2 2 2gydF4y2Ba

ノード2からグラフの幅优先検索実行し,gydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetofinished”gydF4y2BaおよびgydF4y2Ba'startnode'gydF4y2Baののイベントにフラグフラグを设定ししgydF4y2Ba重新启动gydF4y2BaをgydF4y2Ba真正的gydF4y2Baに达できできないノードが残っいるいる场は必ずをを再再再し再し再ししgydF4y2Ba

事件= {gydF4y2Ba'EdgetOnew'gydF4y2Ba,gydF4y2Ba“edgetofinished”gydF4y2Ba,gydF4y2Ba'startnode'gydF4y2Ba};t = bfsearch(g,2,事件,gydF4y2Ba'重新开始'gydF4y2Ba,真正的)gydF4y2Ba
t =gydF4y2Ba15×4表gydF4y2Ba事件节点Edge EdgeDIndex _________________________ __________爆发器2纳米Nan NaN NaN EdgeOnew Nan 2 5 3 EdgeTonew Nan 2 6 4 EdgetOnew NaN 2 7 5 EdgetoFinateN NaN 7 2 8 StartNode 1 NaN NaN NaN EdgeTonew NaN 1 3 1 EdgeTonew Nan 1 4 2 EdgetoFined NaN3 2 6 EDGETOfInment NaN 4 6 7 SigntNode 8 NaN NaN NaN EdgeTonew NaN 8 9 9 9 EdgeTonew NaN 8 10 10 EdgeTonew Nan 8 11 11 EdgeTonew Nan 8 12 12gydF4y2Ba

重新启动gydF4y2BaがgydF4y2Ba真正的gydF4y2Baのの合,gydF4y2Ba'startnode'gydF4y2Baイベントはアルゴリズムが検索を再開する位置と時点に関する情報を返します。gydF4y2Ba

イベントに基于てグラフ强调表示表示ます。gydF4y2Ba

  • 开始ノードを赤色にします。gydF4y2Ba

  • 緑のエッジはgydF4y2Ba'EdgetOnew'gydF4y2Ba

  • 黒のエッジはgydF4y2Ba“edgetofinished”gydF4y2Ba

突出(p,gydF4y2Ba“边缘”gydF4y2Ba,T.EdgeIndex(T.Event ==gydF4y2Ba'EdgetOnew'gydF4y2Ba),gydF4y2Ba“EdgeColor”gydF4y2Ba,gydF4y2Ba'G'gydF4y2Ba)突出(p,gydF4y2Ba“边缘”gydF4y2Ba,T.EdgeIndex(T.Event ==gydF4y2Ba“edgetofinished”gydF4y2Ba),gydF4y2Ba“EdgeColor”gydF4y2Ba,gydF4y2Ba'K'gydF4y2Ba)突出(p, T.Node (~ isnan (T.Node)),gydF4y2Ba'nodeColor'gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba)gydF4y2Ba

幅优先検索を使使使グラフが2部グラフかどうか判定し,关键词,关键词,关键词ますます.2部グラフとは,グラフグラフとはをgydF4y2Ba一个gydF4y2BaおよびgydF4y2BaBgydF4y2Baの2セットに分类でき,グラフ内の各エッジがgydF4y2Ba一个gydF4y2BaのノードとgydF4y2BaBgydF4y2Baのノードを連結するグラフです。gydF4y2Ba

有向グラフを作用成しプロットしし。gydF4y2Ba

S = [1 1 1 2 2 4 5 6 7 8];T = [2 3 6 8 5 10 6 6 10 3 10];g =有向图(s, t);情节(g);gydF4y2Ba

グラフの幅優先検索を使用して2部グラフかどうかを判定し,2部グラフである場合は関連区画を返します。gydF4y2Ba

事件= {gydF4y2Ba'EdgetOnew'gydF4y2Ba,gydF4y2Ba“edgetodiscovered”gydF4y2Ba,gydF4y2Ba“edgetofinished”gydF4y2Ba};T = bfsearch(g, 1,事件,gydF4y2Ba'重新开始'gydF4y2Ba, 真的);分区= false(1,numnodes(g));is_bipart = true;is_edgettonew = t.event ==gydF4y2Ba'EdgetOnew'gydF4y2Ba;ed = T.Edge;gydF4y2Ba为gydF4y2Ba2 = 1:尺寸(T) 1)gydF4y2Ba如果gydF4y2Bais_edgetonnew (ii) partitions(ed(ii, 2)) = ~partitions(ed(ii, 1));gydF4y2Ba其他的gydF4y2Ba如果gydF4y2Ba分区(ed(ii,1))== partitions(ed(ii,2))是_bipart = false;gydF4y2Ba打破gydF4y2Ba;gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba
is_bipartgydF4y2Ba
is_bipart =.gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

ggydF4y2Baは2部グラフであるため,変数gydF4y2Ba分区gydF4y2Baは各ノードが属する区画に関する情報を含みます。gydF4y2Ba

“分层”gydF4y2Baレイアウトを指定し,変数gydF4y2Ba分区gydF4y2Baを使用して1番目の层に现れるソースを指定てて,2部グラフをプロットます。gydF4y2Ba

分区gydF4y2Ba
分区=gydF4y2Ba1x10逻辑阵列gydF4y2Ba0 1 1 0 0 1 0 1 0 0gydF4y2Ba
情节(g,gydF4y2Ba“布局”gydF4y2Ba,gydF4y2Ba“分层”gydF4y2Ba,gydF4y2Ba'来源'gydF4y2Ba,查找(分区));gydF4y2Ba

入力数gydF4y2Ba

すべて折りたたむgydF4y2Ba

入力グラフ。gydF4y2Ba图gydF4y2BaオブジェクトまたはgydF4y2Ba有向图gydF4y2Baオブジェクトとして指定します。無向グラフの作成にはgydF4y2Ba图gydF4y2Baを,有向グラフの作成にはgydF4y2Ba有向图gydF4y2Baを使用します。gydF4y2Ba

例:gydF4y2Bag =图(1,2)gydF4y2Ba

例:gydF4y2BaG =有向图([1,2],[2 3])gydF4y2Ba

開始ノード。次の表のいずれかの値として指定します。gydF4y2Ba

値gydF4y2Ba 例gydF4y2Ba
スカラーノードインデックスgydF4y2Ba 1gydF4y2Ba
文件ベクトルのノード名gydF4y2Ba '一种'gydF4y2Ba
字符串スカラーのノード名gydF4y2Ba “一种”gydF4y2Ba

例:gydF4y2Babfsearch (G, 1)gydF4y2Ba

フラグフラグが表のいずれかオプションとして指定しし次オプションとして指定ししgydF4y2Ba

  • 単一のイベントにフラグを設定するには,フラグ名を使用します。gydF4y2Ba

  • イベントのサブセットにフラグを设定するは,2つ以上の名を细胞配列または弦または配列入れます。gydF4y2Ba

  • すべてのイベントにフラグを設定するには,gydF4y2Ba“allevents”gydF4y2Baを使用します。gydF4y2Ba

メモgydF4y2Ba

活动gydF4y2Baの値により,gydF4y2BaBFSearch.gydF4y2Ba各のにより返さ出出は,次の表のの列参照ししてください。gydF4y2Ba

活动gydF4y2Baの値gydF4y2Ba 説明gydF4y2Ba 出力gydF4y2Ba
“discovernode”gydF4y2Ba(既定)gydF4y2Ba

新しいノードが検出されました。gydF4y2Ba

ノードidのベクトルを返し。gydF4y2Ba

  • 年代gydF4y2Baが数値ノードインデックスの場合,ベクトルは数値ノードインデックスを含みます。gydF4y2Ba

  • 年代gydF4y2Baがノード名の場合,ベクトルはノード名を含む细胞配列です。gydF4y2Ba

'fightnode'gydF4y2Ba

ノードから出るすべてのエッジが訪問されました。gydF4y2Ba

'startnode'gydF4y2Ba

このフラグは検索の开口ノードを示します。gydF4y2Ba

'重新开始'gydF4y2BaがgydF4y2Ba真正的gydF4y2Baである場合,gydF4y2Ba'startnode'gydF4y2Baは検索が再开されるたびに开启ノードにフラグを设定します。gydF4y2Ba

'EdgetOnew'gydF4y2Ba

エッジは未検出のノードに連結しています。gydF4y2Ba

グラフエッジの終了ノードを示す,サイズがgydF4y2BaNgydF4y2Ba行gydF4y2Ba2gydF4y2Ba列の行列または细胞配列配列返します。gydF4y2Ba

  • 年代gydF4y2Baが数値ノードインデックスの場合,行列は数値ノードインデックスを含みます。gydF4y2Ba

  • 年代gydF4y2Baがが名称の综合,行程はノード名をを含む含む含む配列配列配列配列配列配列配列配列。gydF4y2Ba

また,エッジインデックスgydF4y2BaEgydF4y2Baのベクトルを返すgydF4y2Ba[t,e] = bfsearch(...)gydF4y2Baで2つ目の出力を指定できます。gydF4y2Ba

“edgetodiscovered”gydF4y2Ba

エッジは以前以前検出ししノードに连结ししていいgydF4y2Ba

“edgetofinished”gydF4y2Ba

エッジは終了ノードに連結しています。gydF4y2Ba

细胞配列gydF4y2Ba

検索中にイベントに設定する2つ以上のフラグを细胞配列で指定します。gydF4y2Ba

変数gydF4y2BaT.Event.gydF4y2Ba、gydF4y2BaT.NodegydF4y2Ba、gydF4y2BaT.EdgegydF4y2Ba,およびgydF4y2BaT.EdgeIndexgydF4y2Baを含むテーブルgydF4y2BaTgydF4y2Baををます。gydF4y2Ba

  • T.Event.gydF4y2Baは発生順にフラグを含むカテゴリカルベクトルです。gydF4y2Ba

  • T.NodegydF4y2Baは,イベントgydF4y2Ba“discovernode”gydF4y2Ba、gydF4y2Ba'fightnode'gydF4y2BaおよびgydF4y2Ba'startnode'gydF4y2Baに対応するノードノードノードノード含みます。gydF4y2Ba

  • T.EdgegydF4y2Baは,イベントgydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2BaおよびgydF4y2Ba“edgetofinished”gydF4y2Baに対応するエッジをますます。gydF4y2Ba

  • T.EdgeIndexgydF4y2Baには,イベントgydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2Ba,およびgydF4y2Ba“edgetofinished”gydF4y2Baのエッジインデックスが含まれます。エッジインデックスは,多重グラフで繰り返されるエッジを一意に識別します。gydF4y2Ba

  • T.NodegydF4y2BaおよびgydF4y2BaT.EdgegydF4y2Baの未使用の要素はgydF4y2Ba南gydF4y2Baに設定されます。gydF4y2Ba

  • 年代gydF4y2Baが数量ノードインデックスのの合,gydF4y2BaT.NodegydF4y2BaおよびgydF4y2BaT.EdgegydF4y2Baは数量ノードインデックスを含みます。gydF4y2Ba

  • 年代gydF4y2Baがノード名の场合,gydF4y2BaT.NodegydF4y2BaおよびgydF4y2BaT.EdgegydF4y2Baはノード名を含む细胞配列です。gydF4y2Ba

“allevents”gydF4y2Ba

すべてすべてのイベントににフラグ设定されれgydF4y2Ba

例:gydF4y2Bav = bfsearch (G, 3)gydF4y2Baは3番目のノードからを开口し,ノードを検出顺に含むベクトルgydF4y2BavgydF4y2Baを返します。これこれ,gydF4y2Bav = bfsearch (G, 3,“discovernode”)gydF4y2Baと同じです。gydF4y2Ba

例:gydF4y2Bax = bfsearch(g,'a','edgetonew')gydF4y2BaではgydF4y2Ba'一种'gydF4y2Baという名前のノードから開始して,细胞配列gydF4y2BaXgydF4y2Baを返します。これこれ,検索中に未検出のに连结ている个々のを示します々ををます。gydF4y2Ba

例:gydF4y2Bat = bfsearch(g,s,{'discovernode','finishnode'})gydF4y2BaはテーブルgydF4y2BaTgydF4y2Baを返しますが,新しいノードが検出された場合,あるいはノードが終了としてマークされた場合にのみフラグを設定します。gydF4y2Ba

例:gydF4y2Bat = bfsearch(g,s,'andvents')gydF4y2Ba桌子のすべてのイベントフラグ设定ししししgydF4y2BaTgydF4y2Baををます。gydF4y2Ba

データ型:gydF4y2BachargydF4y2Ba|gydF4y2Ba细绳gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

検索検索再开するかかかのトグル。gydF4y2Ba假gydF4y2Ba(既定値)またはgydF4y2Ba真正的gydF4y2Baとして指定します。开始から到達できないノードがグラフに含まれる場合、このオプションが便利です。'重新开始'gydF4y2BaがgydF4y2Ba真正的gydF4y2Ba。gydF4y2BaBFSearch.gydF4y2Baがすべてのノードを検出するまで,再開プロセスが繰り返されます。gydF4y2Ba

'重新开始'gydF4y2Baの既定値はgydF4y2Ba假gydF4y2Baであり,検索では开放ノード到达可能ノードが访问されますのみががされます。gydF4y2Ba

'重新开始'gydF4y2BaがgydF4y2Ba真正的gydF4y2Baのの合,gydF4y2Ba“discovernode”gydF4y2BaおよびgydF4y2Ba'fightnode'gydF4y2Baのイベントは,グラフの各ノードで1回発生します。また,グラフの各エッジには,gydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2BaまたはgydF4y2Ba“edgetofinished”gydF4y2Baによりフラグが1回设定されます。gydF4y2Ba'EdgetOnew'gydF4y2Baによりフラグが設定されるエッジは,1つ以上の木を構成します。gydF4y2Ba

例:gydF4y2Bat = bfsearch(图([1 3],[2 4]),1,'重启',true)gydF4y2Baは,グラフグラフ内のののの连结要素を検索しし连结连结要素をを検索しgydF4y2Ba

データ型:gydF4y2Ba逻辑gydF4y2Ba

出力数gydF4y2Ba

すべて折りたたむgydF4y2Ba

ノードid。次次のいずれかの形式で返されgydF4y2Ba

  • 数値ノードIDを使用して開始ノードgydF4y2Ba年代gydF4y2Baを指定したた合,gydF4y2BavgydF4y2Baはノードインデックスの数码列ですです。gydF4y2Ba

  • 年代gydF4y2Baがノード名を含む含むベクトルまたは串であるである合,gydF4y2BavgydF4y2Baはノード名を含む细胞ベクトルです。gydF4y2Ba

vgydF4y2Baのノードidは,グラフグラフの幅优先検索で検出れたた顺序をししししししししgydF4y2Ba

検索結果。次のいずれかの形式で返されます。gydF4y2Ba

  • 活动gydF4y2Baが指定されていない場合,あるいはgydF4y2Ba“discovernode”gydF4y2Ba、gydF4y2Ba'fightnode'gydF4y2BaまたはgydF4y2Ba'startnode'gydF4y2Baである場合,gydF4y2BaTgydF4y2BaはgydF4y2BavgydF4y2Baと同様なノードidのベクトルです。gydF4y2Ba

  • 活动gydF4y2BaがgydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2BaまたはgydF4y2Ba“edgetofinished”gydF4y2Baである場合,gydF4y2BaTgydF4y2BaはサイズがgydF4y2BaNgydF4y2Ba行gydF4y2Ba2gydF4y2Ba列の行列または细胞配列であり,各関連エッジのソースノードとターゲットノードを示します。gydF4y2Ba

  • 活动gydF4y2Baが検索イベントの细胞配列またはgydF4y2Ba“allevents”gydF4y2Baである場合,gydF4y2BaTgydF4y2BaははフラグイベントさテーブルテーブルたテーブルテーブルははテーブルテーブルははテーブルテーブルテーブルはテーブルテーブルテーブルテーブルテーブルテーブルgydF4y2BaT.Event.gydF4y2Baの検索イベントのフラグ,gydF4y2BaT.NodegydF4y2Baの関連ノードIDおよびgydF4y2BaT.EdgegydF4y2BaとgydF4y2BaT.EdgeIndexgydF4y2Baの关键词エッジます。gydF4y2Ba

すべてすべて结合で,次のようになり。gydF4y2Ba

  • TgydF4y2Baの要素または行のは,検索中にに生物し顺序顺序示します。gydF4y2Ba

  • 年代gydF4y2Baを数値ノードIDとして指定した場合,gydF4y2BaTgydF4y2Baも数値idを使使ノードを表します。gydF4y2Ba

  • 年代gydF4y2Baをノード名として指定した場合,gydF4y2BaTgydF4y2Baもその名前を使用してノードを表します。gydF4y2Ba

エッジインデックス。ベクトルとして返され。gydF4y2Ba

この出力を指定して,イベントgydF4y2Ba'EdgetOnew'gydF4y2Ba、gydF4y2Ba“edgetodiscovered”gydF4y2Ba,またはgydF4y2Ba“edgetofinished”gydF4y2Baのエッジインデックスのベクトルを取得します。エッジインデックスのgydF4y2BaNgydF4y2Ba行gydF4y2Ba1gydF4y2Ba列のベクトルはgydF4y2BaTgydF4y2Baに対応します。これこれはサイズgydF4y2BaNgydF4y2Ba行gydF4y2Ba2gydF4y2Ba列の行列または细胞配列であり,各関連エッジのソースノードとターゲットノードを示します。gydF4y2Ba

例:gydF4y2Ba[t,e] = bfsearch(g,s,'edgetonew')gydF4y2Ba

ヒントgydF4y2Ba

  • dfsearchgydF4y2BaおよびgydF4y2BaBFSearch.gydF4y2Baは有向グラフと無向グラフを同様に扱います。ノードgydF4y2Ba年代gydF4y2BaとノードgydF4y2BatgydF4y2Baの间の无向エッジは,gydF4y2Ba年代gydF4y2BaからgydF4y2BatgydF4y2Baへと,gydF4y2BatgydF4y2BaからgydF4y2Ba年代gydF4y2Baへの双方向エッジと同様ににれます。gydF4y2Ba

アルゴリズムgydF4y2Ba

幅优先検索アルゴリズムは开放ノードgydF4y2Ba年代gydF4y2Baから開始し,ノードインデックスの順序でその隣接ノードをすべて検査します。次に,それらの隣接ノードのそれぞれについて,順番に未訪問の隣接ノードを訪問します。開始ノードから到達可能なすべてのノードが訪問されるまで,アルゴリズムが継続します。gydF4y2Ba

このアルゴリズムは,疑似コードで次のよう记述できます。gydF4y2Ba

事件startnode(s)事件发现nodelist = {s},而Nodelist不是空的c = nodelist {1}从节点c的输出边缘从NodeList中删除Fout Edener e的第一元素,连接到节点N事件EDGETONEW(C,e),EDGETodiscovered(C,E)或EDGetoFination(C,E)(根据节点n的状态)如果事件是EDGETONEW事件发现(n)将n附加到Nodelist结束事件终点(c)结束gydF4y2Ba

BFSearch.gydF4y2Baは,新しいノードが検出れた时尚,あるノードから出るすべてのがされた点など,アルゴリズム内でのなるイベント表すフラグを返すことができますイベントのフラグ返すの。。gydF4y2Ba

イベントのフラグgydF4y2Ba イベントの説明gydF4y2Ba
“discovernode”gydF4y2Ba

新しいノードが検出されました。gydF4y2Ba

'fightnode'gydF4y2Ba

ノードから出るすべてのエッジが訪問されました。gydF4y2Ba

'startnode'gydF4y2Ba

このフラグは検索の开口ノードを示します。gydF4y2Ba

'EdgetOnew'gydF4y2Ba

エッジは未検出のノードに連結しています。gydF4y2Ba

“edgetodiscovered”gydF4y2Ba

エッジは以前以前検出ししノードに连结ししていいgydF4y2Ba

“edgetofinished”gydF4y2Ba

エッジは終了ノードに連結しています。gydF4y2Ba

详细は,gydF4y2Ba活动gydF4y2Baのの力量引の明をを参照てください。gydF4y2Ba

メモgydF4y2Ba

開始ノードから到達できないノードが入力グラフに含まれている場合,gydF4y2Ba'重新开始'gydF4y2Baこのによりにより検索検索でグラフ内各ノードを访问できできこのこの合书,gydF4y2Ba'startnode'gydF4y2Baイベントは検索が再开されるたびに开放ノードを示し。gydF4y2Ba

R2015Bで导入gydF4y2Ba