2012-02-09 7 views
0

グラフADTのエッジ(アーク)のリストを取得するアルゴリズムを作成する必要があります。グラフのエッジを取得する

グラフプライベートメンバーにアクセスできません。私は、DFSやBFSのマーキングノードに似たようなことができると思っていました。エッジが存在する場合、アルゴリズムの出力であるリストに追加しますが、解決策を見つけることができませんでした。

bool IsEmpty() 
Node InsertNode() 
InsertArc(Node, Node) 
DeleteNode(Node) 
DeleteArc(Node, Node) 
List AdjNodes(Node) 
bool ExistsNode(Node) 
bool ExistsArc(Node, Node) 
Label ReadNode(Node) 
WriteNode(Node, Label) 

私はどのようなアルゴリズムを使用することができます。

私はこの方法がありますか?

+0

には、apiの記載がありますか? –

+0

あなたはグラフのどの属性にアクセスできますか?私は、ノードとエッジに直接アクセスできない場合、グラフがどれほど役に立つか分かりません... – ajwood

+0

私はこのメソッドを持っています: - IsEmpty() - Node InsertNode() - InsertArc(Node、Node) - DeleteNode(ノード) - DeleteArc(ノード、ノード) - リストAdjNodes(ノード) - ブールのExistsNode(ノード) - BOOL ExistsArc(ノード、ノード) - ラベルReadNode(ノード) - WriteNode(ノード、Label) – JohnQ

答えて

1

さて、これらのメソッドを使うと、グラフの各ノードでAdjNodes(Node)を呼び出すことができます。返されたリスト内の各ノードについて、これはエッジを表し、ペア(FirstNode、SecondNode)で表すことができます。これらのペアを新しく作成したリストに保存します。これがエッジのリストです。

無向グラフの場合は、(FirstNode、SecondNode)と(SecondNode、FirstNode)が同じエッジを表すため、見つかったすべてのエッジの複製が作成されます。

+0

listNodes()メソッドはありません。 –

+0

はい、私はそれについて疑問を抱いていましたが、ノードの数を見つけるための何かがあると確信しています。OPはおそらくそれをまだ見つけていません。 – HexTree

関連する問題