2011-09-12 22 views
1

私が読んだ本によると、値が1からnまでの頂点を使ってグラフを構築することが多いため、すべての頂点に固有の名前が付いています。[グラフ]:関係のグラフを作成する

私は、値文字列である頂点を使用してグラフを構築する必要があり、私は彼らのためにグラフを構築する前に

V = {'Arm', 'Bob', 'Lin', 'Kok'} #vertices 
E = {('Arm', 'Lin'), (Bob, 'Lin'), ('Bob', 'Kok')} #edges 

私は整数にこれらの文字列の頂点をマッピングすることになってると言いますか? 私が参照できる例はありますか?

import pygraphviz as pgv 

A=pgv.AGraph() 

A.add_edge('foo', 'bar') 
A.add_edge('bar', 'baz') 
A.add_edge('baz', 'foo') 

A.write('simple.dot') 

B=pgv.AGraph('simple.dot') 
B.layout() 
B.draw('simple.png') 

または、あなたの場合」:

+0

数字にマップする理由はありません。私はどのソフトウェアを使用しているのかよくわかりませんが、pygraphvizで描画する場合は名前をうまく使うことができます。 – Owen

+0

@Owen、実際には、DFSやBFSなどのグラフアルゴリズムを実装しようとしていますが、書籍から学んだ方法は、検出されたすべての頂点を灰色または黒色にし、すべての頂点に1からnの番号を割り当てます。色は配列color [i]で表すことができますが、頂点が文字列の場合、どのように色付け作業を行うことができますか?だから私はすべての文字列の頂点を1からnの範囲の数字にマッピングする必要があると思った。私は正しい? – Alcott

+0

できます。ノード自体に色を格納する(オブジェクトにする)こともできますし、dictで色を保持し、 'color [name]'を使って色を得ることもできます。 – Owen

答えて

1

私は手足に出て行くつもりだとあなたがpygraphviz

ではなく、数字の文字列を使用して描画していると思い、simple.py例は次のようになります。あなたが投稿したコードは、グラフを表現するのに最適な方法です。文字列がうまく動いても数字を使う必要はありません。

関連する問題