3

私は3Dコンピュータグラフィックスでいくつかのことをしましたが、グラフ理論には少し慣れていません。特に、Perl(Jarkko Hietaniemi)でアルゴリズムをマスターするで説明されているように、深さ優先探索(DFS)を使用して問題を調べ、解決しようとしています。これまでのところ、私はそれを取得することができませんでした:-(しかし、私はかなりです-DFSが私が欲しいものであると確信しています。

Perlである必要はありませんが(言語を学ぼうとしているだけです)、JavaまたはC++が適しています。

私は53の位置ベクトル、つまり(x、y、z)を持っています。

(x1,y1,z1)
(x2,y2,z2)
.
.
.
(x53,y53,z53)

次に、ノード間にランダムなリンクを生成するために作成したPerlプログラムを実行し、最大数を割り当てます。ホップの数、たとえば6。したがって、トポロジは次のようになります。

5                               <-- node 1 has 5 links to
  18 4 23 6 48,                 <--  node 18, node 4, node 23, node 6, node 48
2                               <-- node 2 has 2 links to
  14 5,                         <--  node 14, node 5
0                               <-- node 3 is a leaf since it has no links
.
.
.
2                               <-- node 18 has 2 links to
  3 17                          <--  node 3, node 17  
.
.
.
4                               <-- node 53 has 4 links to
  10 46 49 22                   <--  node 10, node 46, node 49, node 22

シンクに到達するまでのパス「実行」、つまり0を決定したいと思います。たとえば、ノード1からノード18、ノード3...このパスはすでに完了しています。。。。

DFSが欲しいと思います。再帰的な運動のようです。

誰かが私にコードを理解してくれてくれたら、それは素晴らしいことです。私は学生ではありませんが、51歳です!多分それは私がこれを取得していないことと関係があります:-)


私は自分のqを見て、何らかの理由で(おそらく私:-(それは「文字化け」していた)

トポロジは5のようになります<-ノード1には5つのリンクがあります。18 4 23 6 48 <-ノード18、ノード4、ノード23、ノード6、ノード482<-ノード2には2つのリンクがあります。14 5、<-ノード14、ノード5 0 <-ノード3はリンクがないため、リーフです。。。2<-ノード18には2つのリンクがあります。3 17 <-ノード3、ノード17。。。4<-ノード53には4つのリンクがあります。10 46 49 22 <-ノード10、ノード46、ノード49、ノード22

誰かがコードを提供できる場合に備えて明確にしておきたい(Perl、Java、c ++ / C ...)

ありがとう。

4

1 に答える 1