该程序使用关联列表表示图,该算法的时间复杂度为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++) { //对于每个顶点打印,其相邻顶点。 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) }