C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

インシデントリストを使用してグラフを表現するC++プログラム


このプログラムは、インシデントリストを使用してグラフを表し、このアルゴリズムの時間計算量はO(e)です。

アルゴリズム

Begin
   Take the input of the number of vertex ‘v’ and edges ‘e’ and also
   take the input of ‘e’ pairs of vertexes of the given graph in e[][].
   For each edge print the corresponding vertex involved in that connection.
End

サンプルコード

#include<iostream>
using namespace std;
int main() {
   int i, v, e, j, c;
   cout<<"Enter the number of vertexes of the graph: ";
   cin>>v;
   cout<<"\nEnter the number of edges of the graph: ";
   cin>>e;
   int edge[e][2];
   for(i = 0; i < e; i++) {
      cout<<"\nEnter the vertex pair for edge "<<i+1;
      cout<<"\nV(1): ";
      cin>>edge[i][0];
      cout<<"V(2): ";
      cin>>edge[i][1];
   }
   cout<<"\n\nThe incidence list representation for the given graph: ";
   for(i = 0; i < e; i++) {
      // For each vertex print, its adjacent vertex.
      cout<<"\n\tE("<<i+1<<") -> { ";
         cout<<"V("<<edge[i][0]<<") , "<<"V("<<edge[i][1]<<")";
         cout<<" }";
   }
}

出力

Enter the number of vertexes of the graph: 3
Enter the number of edges of the graph: 4
Enter the vertex pair for edge 1
V(1): 2
V(2): 1
Enter the vertex pair for edge 2
V(1): 1
V(2): 2
Enter the vertex pair for edge 3
V(1): 3
V(2): 2
Enter the vertex pair for edge 4
V(1): 2
V(2): 3
The incidence list representation for the given graph:
E(1) -> { V(2) , V(1) }
E(2) -> { V(1) , V(2) }
E(3) -> { V(3) , V(2) }
E(4) -> { V(2) , V(3) }

  1. 隣接行列を使用してグラフを表現するC++プログラム

    グラフの隣接行列は、サイズV x Vの正方行列です。Vは、グラフGの頂点の数です。この行列では、各辺にV個の頂点がマークされています。グラフにiからjの頂点までのエッジがある場合、i thの隣接行列に 行とjth 列は1(または加重グラフの場合はゼロ以外の値)になります。それ以外の場合、その場所は0を保持します。 隣接行列表現の複雑さ 隣接行列表現はO(V 2 )計算中のスペースの量。グラフに最大数のエッジと最小数のエッジがある場合、どちらの場合も必要なスペースは同じになります。 入力 出力 0 1 2 3 4 5

  2. DFSを使用して有向グラフの接続性をチェックするC++プログラム

    グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 有向グラフの場合、接続を確認するためにすべてのノードからトラバースを開始します。 1つのエッジに外向きのエッジのみがあり、内向きのエッジがない場合があるため、他の開始ノードからノードにアクセスできなくなります。 この場合、トラバーサルアルゴリズムは再帰的なDFSトラバーサルです。 入力 :グラフの隣接行列 0 1 0 0 0 0 0 1 0