のか、解説を見ても全く分かりません。 特に分からないのが、 visit(node)⇐1 for nodeの値を出力 for(jを1からnまで1ずつ増やす) if(martrix(node,j)=1 and visit(j)=0) graphSearch(j) endif endfor の部分です。 nodeの値を出力 →1を出力する for(jを1からnまで1ずつ増やす) →jを1から6まで1ずつ増やす if(martrix(node,j)=1 and visit(j)=0) →martrix(1,1)=1 and visit(1)=0 martrix(1,1)は0です。 配列visit(1)も0です。 なのでgraphSearch(j)の処理はせずに jを2にします。 →martrix(1,2)=1 and visit(2)=0 martrix(1,2)は1、配列visit(2)は0で条件を満たすため、graphSearch(2)を出力。 jが3になった時も martrix(1,3)=1 and visit(3)=0のため、graphSearch(3)を出力。 となると理解してます。 「for(jを1からnまで1ずつ増やす)」とプログラムにあるので、6まで行ったら繰り返し処理は終わる(つまりmartrix(1,6)まで行ったら終わり)認識なのですが、どうしてnode2とnode3に紐づいている、4.5.6が出力されるのか分かりません。 私がアルゴリズムを理解しきれてないのだと思うのですが、お知恵を貸していただければ幸いです。